之前在准备跳槽的时候就看了很多牛客的面经,在学习的时候不仅给了我方向,在面试中还遇到了原题,真的很感谢。希望我这个面经能帮助到其他人。
一面:(基础,以下都是一个大概方向,面试的时候都会深入问)
1.算法:二叉树遍历与恢复(前中序遍历,恢复);如何只一次遍历(空间换时间,空用特殊字符代替);
2.hashmap、currentHashMap..(源码)
3.synchronize、lock区别;
4.线程状态,sleep、wait区别
5.mysql事务,锁;
6.redis主从同步流程,io多路复用原理;
7.b树、b+树;
二面:(项目很重要,最好提前都写一下,有什么缺陷,如何优化等等)
1.自我介绍;
2.根据介绍到的项目深入聊;
3.redis极热key问题(读写分离,客户端缓存)
4.redis分布式锁,主从不一致问题如何解决(Redlock)
5.cpu使用突然飙升、内存泄露、内存溢出、频繁FullGC、GC过慢...这些分别可能由哪些原因导致;
6.类加载机制、双亲委派机制、如何阻断双亲委派机制(线程上下文类加载器)
7.创建对象流程,内存分配方法,如何保存线程安全;
8.String实现四则运算(栈)
三面:自我介绍、然后继续聊项目、穿插一些基础问题、业务问题等;
HR面:都是那些常见问题,多看些其他面经即可,不赘述;
面试感觉还不错,面试官都很nice,基本上面完就知道了结果。
全部评论
(4) 回帖