笔试过了之后,通知到深圳百度国际大厦面试,北京打来的电话,一开始以为是推销电话给挂了……幸亏人家打了第二次。一二三面是同一天进行的,面完一次就让你等候,然后要么告诉你“您今天的面试结束了”要么给你安排下一面。
本人侥幸面了三面,三面全是技术面,而且每个面试官会记录你的信息给下一轮的面试官,比如一面觉得你可以手撕代码能力稍弱或者什么方面问得比较少,第二轮可能会进行加强。面试官人都挺好的,不过感觉三面过的希望不大。因为面了一天感觉脑子有点混乱,记住得不全,只能把记得住的分享给大家。
三次面试都是一开始做自我介绍,中间会看着简历问一下项目经历,所以下面不重复。
一面问得比较杂,奇怪的是不怎么问我算法和数据结构:
JAVA:
8大基本类型?他们各自占多少字节?
JAVA集合类有哪些,有什么区别,如何保证线程安全?
synchronize的特点,用过哪些lock,两种同步方式的区别?
synchronize可以加在哪?加在类上时,该类的两个实例能不能同时调用类中同一个方法?能不能同时调用同一个静态变量?
乐观锁和悲观锁的区别以及Java中如何实现?
lock和CAS的联系?
线程有几种实现?区别和特点是什么?
写一个程序,Main函数里开10线程,怎么保证