字节跳动客户端开发二、三面面经(已offer)
客户端开发(上海)二面(05/12)
1.自我介绍
数据库
2.解释原子性,如何实现?
3.索引,实现的数据结构(我答了B-tree索引)
4.讲讲B-tree
Java
5.怎么实现同步(我答了synchronized, volatile)
6.讲讲synchronized
7.垃圾回收
网络
8.HTTP/TCP
9.OSI七层结构
10.TCP可靠传输
算法题
经典股票售卖问题I & II
全程34分钟,风格是每个模块选一个切入点,根据我的回答涉及的知识点进行扩展,感觉大部分答得还可以,期待后续。
三面(05/28)本来是5/22三面,但我的设备临时出了问题没法面,就又重新约了时间
1.介绍背景,倾向的开发方向
Java
2.讲讲volatile
3.不用synchronize怎么实现多线程多次读写操作?我答了读写锁
4.ArrayList<String>,ArrayList<Integer> getclass判断相等,这个我没答出来,后来面试官提示泛型我还是不会,结束以后查资料才知道因为,在编译期间,所有的泛型信息都会被擦除,List<Integer>和List<String>类型,在编译后都会变成List类型(原始类型)。Java中的泛型基本上都是在编译器这个层次来实现的,这也是Java的泛型被称为“伪泛型”的原因。这题答得简直尬的我想抠脚。。。
算法题
5.求数组连续子区间的最大和
6.实现LFU cache
闲聊爱好,工作城市
介绍部门工作时间,技术栈
本来我觉得我第四题答得跟屎一样,没想到最后闲聊时听下来感觉口风有戏,可能是算法题做的还不错,拯救了一些印象
总而言之,许愿oc吧!
#字节跳动面试##字节跳动##校招##面经##Java工程师##安卓工程师##iOS工程师#