面试1
1、JVM:gc很关键,基本上只要问到JVM,必问gc;JVM的内部结构;
2、多线程:线程池会问到构造方法的参数,好处以及坏处;内置锁和显示锁的使用场景;Cas原理和缺点解决的方法,以及原子类的说明;Aqs,叙述数据结构,设计模式,模板方法和可重写方法,内部类状态的变化以及节点的成员变量,说到这一定要说明condition和aqs的配合使用。
ConcurrentHashmap1.7 1.8基本都会问到的,数据结构,get,put,扩容以及初始化,size,什么时候会扩容,解决hash冲突的办法以及1.8红黑树到链表的互相转换。
双重检测引发的问题(临界区重排序带来的)
3、mysql的存储引擎myisam和innodb必问,区别;索引分别使用到的数据结构以及分类;
4、Sql语句的优化十条一定要记住,并说明原因;事务的性质ACID以及隔离的级别并分别说明,引发的脏读不可重复读幻读分别在哪个隔离级别上会发生;
5、算法:快速匹配字符串(暴力匹配和KMP算法),其实还有其他的算法;怎么找到两个链表的公共节点;怎么找到链表的环;
6、设计模式会问到单例模式,代理模式,工厂模式;
你看过哪些源码,有用到什么设计模式;
7、网络:osi七层模型
Tcp三次握手,四次挥手状态的变化(状态没记住呜呜)
Tcp为什么是可靠传输协议(确认机制和超时重发)
滑动窗口的流量控制(我自己拓展的)
数据链路层协议,我就回答了arp和rarp,会什么使用ip地址而不是用mac地址,arp协议是怎么将ip地址转化为mac地址的;
8、Spring源码,Spring的二次开发和扩展;市面上还有哪些主流框架扩展了Spring?
9、在项目中遇到的最有挑战功能及解决方案;在实际开发中自己最不满意的是什么?自己实际参与的具体架构设计;