1面
1.说说ArrayList,LinkedList的差别是什么?
2.链表既然查询性能不足,在保持链表的基本特性的基础上,有没有办法改造下链表它的查询速度?
3.快排、堆排和归并都是O(nlog n)的算法,为何JDK选择快速排序?
4.现在我有一个十万大小的数据集,要从中寻找选出最大的10个元素,怎么做呢?
5.JDK1.8中在数据结构上,对HashMap做了什么样的改进?为什么?
6.为什么HashMap不一直使用红黑树?
7.面向对象的特征有哪些方面?
8.String
和StringBuffer,StringBuilder的区别
9.说出Servlet的生命周期,并说出Servlet和CGI的区别。
10.abstract
class和interface有什么区别?
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2面
1.为什么TCP握手需要三次?
2.TCP的四次挥手中为什么要有TIME_WAIT状态?
3.TCP协议本身会导致什么样的安全问题?
4.对Java接口代理模式的实现原理的理解?
5.Mybatis打开调试模式之后,能打印sql语句等信息,这是怎么实现的?实现过程中使用了什么设计模式?
6.Spring在Bean创建过程中是如何解决循环依赖的?
7.Spring MVC 运行流程
8.BeanFactory和ApplicationContext有什么区别?
9.如何对数据库如何进行垂直拆分或水平拆分的?
10.什么是幂等性?
11.柔性事务是什么,分布式环境下为何要放弃传统事务?
12.实现分布式Session的过程是怎样的?
13.JVM中存在哪些引用?
14.请简单描述下双亲委派模型?为何Java推荐使用这种模型?Tomcat中是双亲委派模型吗?
15.HotSpot中的堆为什么要分为新生代和老年代?
16.CMS收集器有哪些特点?
3面
1.如何实现分布式锁
2.如何保证redis和mysql数据一致?
3.如何解决缓存击穿问题?
4.如何实现并发限流
5.请概述volatile关键字
6.synchronized的实现原理是什么?
7.说说 Dubbo 服务暴露的过程(发布订阅)
8.ZK分布式锁有几种实现方式?各自的优缺点是什么?