字节商业化面经(已offer)
3.28 一面
3.29二面
4.6 三面
4.8 hr面
4.9 oc+offer
2月28投递,3月2日官网显示流程终止,郁闷了好几天,3月8日hr打电话约面试时间,被告知是内部转岗了,因为那段时间正在阿里提前批和面腾讯,寒假没好好准备,被打击到了,就约到了3月底。
总体来说,面的很顺利,第一次面字节,走到了最后,感谢字节收留。
一面 2.28 10:30
1.自我介绍
2.tcp和udp区别?
追问:tcp为什么可靠(序列号,确认重发,超时重传,三握四挥,流量控制,拥塞控制),详细说了三次握手(带参过程,半连接攻击,全连接攻击,如何解决半连接攻击(调整半连接队列阀值(正对不同操作系统带参数),缩短timeout,syn cookie,设置可疑队列,syn中继))被叫停。
追问:为什么不能是两次?,挥手为什么需要四次
3.http和https 的区别?
(从无状态,长连接,请求方法,https=http+认证+保证完整性+加密,公开密钥加密和共享密钥加密)
追问:详细说一下https连接建立的过程。
自己主要说了交换密钥的过程,涉及到SSL和验证服务端证书(大概13点左右)
4.mysql的问题具体忘了
5.JVM介绍一下,从类加载器到常说的五个再到解释器和编译器和本地方法库及接口,大概说了以下,主要说了以下java为什么采用解释器和编译器并行的架构。
GC,会引起重GC的情况 ?
垃圾回收器 CMS和G1?过程,增量和原始快照算法,G1要解决的问题以及具体是如何解决的
6.项目
二面 2.29 17:00
全程一个八股都没问,面试官问的贼快,所以只记住了几个映像深刻的问题
1.自我介绍
2.spring的事务实现原理?
(基于数据库,面试官:那肯定的么 。答的比较乱,不算太好)
最后总结了一下,一方面spring的事务基于数据库实现底层的回滚和提交(源码涉及到几个重要类,事务控制器和事务状态啥的),其次通过AOP将事务横切进业务逻辑(aop的源码和动态代理的实现底层),再利用事务传播特性解决方法相互调用时的事务处理问题。
3.mysql的主从复制详细过程。(大意了,学的时候,只整了原理和配置过程)
说了原理问面试官是说配置过程吗? 不是。(下去看了一下,就贼简单,就是原理的再详细一下,涉及到三个线程)
4.mysql的索引结构。
说了b树和b+树及区别
追问:b+树为什么能三层能存2000多万个,计算过程。
追问:b+树的叶子节点之间是单链还是双链,页与页之间,页内部呢。(后两个没弄过,说了一下自己理解)
追问:索引还有啥结构(哈希)为什么不用?(无序,得范围) 为什么不用红黑树(层太多)
追问;给你10个数(用b+数整一个效率最高的) 问多少阶 (面试官:都可以,只要效率最高) 想了想有坑,(就给面试官算了一下b和b+的放的个数)
其他忘了
4.6 17:00 三面
1.自我介绍
2.项目(深挖)
3.算法:输入一个整数,输出它的汉字。例:1234 一千二百三十四 1002 一千零二
总结:二面一度以为挂了,没想到过了,总之,感谢字节收留,春招就到此为止了,暴露了好多问题,秋招再战。
#面经##字节跳动##Java工程师#