一面
1.Spring应用Web服务请求返回Resource的过程?
2.HanderMapping的过程?数据怎么写进去的?Key Value是什么格式的?
3.拦截器和过滤器有什么区别?
4.SpringAOP用它做什么事情?织入的时候是运行时还是类加载时织入?
5.SpringAOP怎么实现?动态代理几种方式实现?
6.JVM内存模型?Java方法局部变量保存在哪里?
堆里存放什么?堆分代?比例?创建对象有可能放入到老年代里吗?MinorGC和FullGC的触发条件?
7.CMS的过程?总共需要几次STW?标记的过程?GCRoots有哪些?G1有了解吗?G1回收过程还有STW吗?
8.Java四种引用类型?
9.volatile关键字的含义?
10.实现原子性i++怎么办?
11.巨大的整型数组,找到第k大的数,怎么办?
12.快排的好处?
13.堆排序的复杂度,堆排的优势(对内存要求小一些)?
14.很大的数组,除了一个数字出现了一次,其他的数字出现两次怎么办?
15.很大的数组,除了一个数字出现了一次,其他的数字出现三次怎么办?
16.代码:判断一个树是不是二叉搜索树?
二面
1.SpringMVC的流程?如果遇到异常怎么处理?
2.SpringMVC并发的时候会不会出现线程安全的问题?
3.实现线程安全怎么办?juc下的可以作用于Controller吗?
4.SpringBean的作用域有哪些?单例和原型有什么区别?
什么情况需要用到原型模型?
5.autowired和resource注解的区别?resource怎么找到这个Bean的?通过什么信息找到Bean的实例的?
6.MyBatis的#和$的区别
7.Redis的数据类型?String查询复杂度是O(1),怎么实现的?SDS和c的String的区别?zset的底层数据结构?
8.统计三天内登录用户的id?
9.MySQL户籍系统,身份证号怎么加索引?面试官提醒:MySQL有索引类型?主键,辅助,联合,Hash
10.MySQL联合索引为什么要遵循最左前缀原则?底层结构是什么样的?
11.不可重复读(修改)和幻读(删除和增加)的区别?
12.CMS有什么缺点?内存碎片是怎么导致的?其他的垃圾回收器怎么解决这个问题?
13.AQS非公平锁怎么实现的?排队的时候怎么知道某线程该运行了呢?通过什么方式通知(park()方式)?
14.CountDownLatch怎么通过AQS来底层实现功能的?
15.代码:删除倒数第k个节点,O(n)复杂度