首先投简历不说了,刚开始会有电话面试,首选个人介绍,讲一些项目经历,用的技术栈,比较擅长哪里。电话面试者都会根据你简历上的内容进行提问,你能回答上来,他就会往更深入去问,主要是针对简历,基础会比较看重。 问了我JVM虚拟机的内存模型、内存区域、问了垃圾回收机制的算法、为什么新生代划分为Eden、from/to区域、问了算法内容(因为我简历有写算法和数据结构),问了海量数据里面获取前十个数据、或者找出最大的数; 完了后两三天会通知现场面试:一面是年轻小伙,对简历问了比较多,象redis/mysql/java集合等知识问了一些,因为饿了么技术栈用的spring好像不是很多或者是他们内部自己弄的框架,所以对这块没有怎么问。问了比较多的数据结构和算法,问快排、空间/时间复杂度算法; 二面应该是技术leader,主要对你做的项目进行了解,深入了解,非常深入了解。看你对业务熟悉如何,还问了多线程、问为什么要实现自旋锁、偏向锁、synchronized和lock区别,问了HashMap数据结构/扩容技术、问currentHashMap多线程并发时候segment如何保证size大小(这个不熟悉)总体来说,75%能回答上来吧,一周内会有答复坐等了。主要是要基础扎实、基础扎实、基础扎实!
面试官问的面试题: 整体流程很流畅。
1. 先是自我介绍;
2. 问了做过的项目内容,业务流程之类的;
3. 在简历中项目内容中扣出一些疑问深挖内容提问;
4. 针对系统架构问了一下自己的思考;
5. 问了一些java基础,多线程,主流框架;
6. 现场在白纸上出了两道题,一道是排序算法,一道是死锁实现;
7. 最后闲聊了一下。