字节跳动Java研发面试总结:2个星期,4轮面试,我终于拿到offer

2021/6/11 22:29:29

本文主要是介绍字节跳动Java研发面试总结:2个星期,4轮面试,我终于拿到offer,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

个人背景:
坐标背景,某211本科毕业生,计算机专业,前公司是某B站,辞职之后就重新规划了一下自己的职业方向,最终目标定在了字节跳动,比较年轻化的一家互联网公司,近几年的发展速度也比较快。

综合方面来说比较适合自己,所以就投了字节的简历,Java研发方向的,之后接到面试通知,总共耗时了2个星期,一共4轮面试,整个过程比较紧张,提心吊胆的,不过好在最后终于拿到了offer,所以特分享一下字节跳动Java岗的面试经验。
 

一面(50分钟左右,问题比较多)

 

网络:

交换机和路由器区别
TCP拥塞控制
TIME-WAIT和CLOSE-WAIT
项目:
Redis减库存怎么做的
QPS要是上万怎么办,Redis怎么抗?(我答的横向拓展,Nginx限流。其实应该是想问Redis集群)
Nginx怎么限流(漏桶算法、配置burst参数)
分布式事务怎么处理? (简单说了二段提交、TCC)
TCC有系统挂了怎么办? (不会。后来查的:TCC框架会记录日志,不断重复执行)

 

数据库:


InnoDB和MySAIM区别
讲一下索引

 

算法:

 

二面(55分钟)

 

网络:


三次握手四次挥手全过程
TCP拥塞控制
输入url到打开页面全过程


Java:


Java里四种引用
对多态的理解,底层是怎么实现的?(动态绑定)
Jvm运行时数据区
Java的深浅拷贝(clone方法)
Hashtable和HashMap区别,说下HashMap结构

 

项目:


为什么要用Redis
Redis热key问题(没看过… 后来查的:本地HashMap缓存热key,或者搭建Redis集群)
Redis有哪些数据结构
String是怎么扩容的(不知道,后来查的:2倍扩容,超出1M后每次扩大1M)
Mybatis insert一个对象返回id怎么做的(不会… 扯到了为什么用Mybatis ,动态代理 )

 

算法:


(A,B)(A,C)(B,D)(D,A)判断是否有循环引用,提示用拓扑排序(尴尬,没看过,换了超简单的第二题做出来了)
蛇形打印二叉树

 

 

三面(45分钟)

 

主键索引查询和非主键索引查询区别
b+树好处
一致性哈希
说一下ConcurentHashMap
设计LRU
数组找是否存在和为M的两个数

四面(HR面,大约35分钟,主要是问个人职业规划、薪资待遇,以及对字节跳动的期许等等)

 

 



这篇关于字节跳动Java研发面试总结:2个星期,4轮面试,我终于拿到offer的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程