JD一面问题 1.java开发中的受检异常和非受检异常都是什么,实际开发中应怎样处理这种异常 2.常用的数据结构有哪些?(栈,队列,堆,图,树) 3.常用的排序方式有哪些(快排,桶排序,冒泡,归并) 4.快排的时间复杂度是多少,它是稳定期望的吗? 5.Array数组和链表的的构成是什么,区别是什么,实际工作中都起到什么样的作用? 6.一个顺序的链表,它如果去做一个查询,期望是多少? 7.mysql有哪些索引? 京东二面问题 1.AOP的原理,cglib和JDK动态代理的区别,为什么不建议使用jdk动态代理 2.常用的设计模式有哪些。单例模式的实现方式,为什么要用双重检查锁 3.CAP理论和BASE理论分别指的是什么 4.常用的缓存有哪些,生产中是怎么使用的 5.RPC的原理和实现方式 6.JIT在java编译过程中有哪些优化 7.简单描述下JAVA内存回收方式,内存回收时候,标记-置换的原理是什么,如何做到的 8.线程池一般设置为多大,为什么要这么设置 9.线程的几个基本状态,BLOCKED状态在什么情况下出现,以及是否可以直接切换为终止 10.用代理模式的方式解释spring事务传播是如何做到的