来源网络 ,侵删
一面(纯技术面)
队列的实现,需要注意的地方
快速排序的实现、时间复杂度分析
B树和B+树的区别、应用
HashMap的实现,扩容机制,扩容时如何保证可操作
Redis扩容机制(渐进式单线程扩容)
Spring AOP的原理
Spring IoC的原理,如何实现,如何解决循环依赖
两线程对变量i进行加1操作,结果如何,为什么,怎么解决
CAS概念、原子类实现原理
synchronize底层实现,如何实现Lock
AQS有什么特点
可见性的底层原理
JVM内存模型,为什么要这么分
本地方法栈和虚拟机栈的区别
如何查看JVM参数是否正确
TCP三次握手,如何实现
Socket编程底层如何实现
select和epoll的区别
算法:蛇形打印二叉树
二面(项目面+技术面)
项目详聊(问了很多、很细)
Innodb多列索引
MySQL默认事务隔离级别,不可重复读是什么意思,如何实现可重复读
Redis服务端有20GB内存,现在要缓存200GB数据,如何处理
算法:给出[[1, 2], [3, 5], [8, 8], [15, 16], [32, 38]],求间隔
什么是堆,画了个二叉树问是否符合最小堆的结构,然后根据图叙述堆排序的详细过程。
TCP与UDP的区别,还有哪些其他的传输层协议,用来做什么的。
进程与线程的区别,你是怎么理解这两个概念的(快被问烂了的问题……)
Volatile关键字干什么用的和底层原理,CAS干什么用的以及原理。
原子类的功能,实现原理。
手撕代码:Leetcode原题. 最长公共子串。
最后补了个redis的数据结构,跳表怎么实现的,有什么用,哪些指令相关。
三面(综合面)
自我介绍
谈谈Java垃圾回收机制
算法:给出两个升序数组A、B和长度m、n,求第k个大的数
算法:给出数组A,长度为n,数组中元素的值位于[0, n - 1]之间,求是否有重复元素
团队工作中如果有一个人没有完成 如何对上级交付
说说你的职业规划
生活工作如何平衡
现在有哪些offer了
最近有在学什么,分享一下
总结
总共三面,都1个小时以上,1面是技术面,问得广又问得深且喜欢问实现和原理; 2面项目面,主要是项目和架构; 3面综合面,猜测是考察对知识的整体认知和对候选人的学习方法、未来规划的认识。当然3轮面试都少不了的手撕代码(三面的算法题差点炸了)