一、Java基础
1、Arrays.sort实现原理和Collections.sort实现原理
答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort实现的。TimSort算法就是找到已经排好序数据的子序列,然后对剩余部分排序,然后合并起来.
2、foreach和while的区别(编译之后) 线程池的种类,区别和使用场景
3、分析线程池的实现原理和线程的调度过程
4、线程池如何调优
5、线程池的最大线程数目根据什么确定
6、动态代理的几种方式
7、HashMap的并发问题
8、了解LinkedHashMap的应用吗
9、反射的原理,反射创建类实例的三种方式是什么?
10、cloneable接口实现原理,浅拷贝or深拷贝
11、Java NIO使用
12、hashtable和hashmap的区别及实现原理,hashmap会问到数组索引,hash碰撞怎么解决
13、arraylist和linkedlist区别及实现原理
14、反射中,Class.forName和ClassLoader区别
15、String,Stringbuffer,StringBuilder的区别?
16、有没有可能2个不相等的对象有相同的hashcode
17、简述NIO的最佳实践,比如netty,mina
18、TreeMap的实现原理
二、JVM相关
1、类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,他们的执行顺序
2、JVM内存分代
3、Java 8的内存分代改进
4、JVM垃圾回收机制,何时触发MinorGC等操作
5、jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代,几种主要的jvm参数等
6、你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms,g1
7、新生代和老生代的内存回收策略
8、Eden和Survivor的比例分配等
9、深入分析了Classloader,双亲委派机制