猫眼一二面面经

电话打来要求视频面试,头一遭的我立马行动起来换衣服,加qq面试就开始了。

1、讲项目框架,问了其中文件上传的细节,没答上来,一年前的代码忘了;

2、hashmap与hashtable的区别;

3、jvm内存的划分;

4、堆与栈的区别;

5、java内存模型,实现原理;

6、volatile,为什么不能保证原子性;

7、手写单例模式;

8、线程的状态;

9、线程安全,线程池(较深入);

10、事务ACID,隔离级别,脏读、不可重复读、幻读,mysql的默认隔离级别,如何修改;

11、hashmap的实现原理,如果key相应位置链表有大量数据,如何缩小查找时间;

12、hashmap与concurrenthashmap的区别;

13、synchronized与lock的区别,公平锁,非公平锁;

14、垃圾回收算法,新生代老年代永久代,GCRoots;

15、HTTP 状态码;

16、TCP/IP体系结构;

17、三次握手;

18、TCP和UDP的区别;

19、get与post的区别;

20、MyISAM和InnoDB的区别;

21、linux下shell,bash;

22、各排序算法的平均时间复杂度,文件太大需要IO用什么排序;

23、最左前缀索引的解释,索引常见结构;

24、手撕代码,实现库函数开方;

最后,面试官说,可能有三面可能没有,都会发信息通知的。

静待结果,我佛保佑。