一. 集合
- 集合的分类,以及各种集合的特性以及他们之间的区别,各种集合的遍历方式
重点:HashSet采用哈希算法,底层是由hashMap实现,默认初始化容量16,加载因子0.75,value源码中给默认值,外部数据存入key中 - HashMap的特性?它的底层原理?
- 遍历Map有哪些方式?
- ArrayList的扩容怎么做的?怎么样实现扩容的?是线程安全的吗?怎么去让他线程安全?
- 讲讲对HashMap的了解?不给值,它的默认大小是16
- List是有序的吗?Map是否有序?
List有序,而Map中HashMap无序,TreeMap和LinkedHashMap有序 - 线程安全的Map是用什么Map?
CurrentHashMap - 类型后面加…,表示什么含义?
表示可接受的参数个数不定,可以是一个也可以是多个
二.设计模式 - 你熟悉的设计模式,并解释,实际工作中哪些场景下用过什么设计模式?
- 单例模式的使用场景,在实际工作中有哪些地方用过?
三. 多线程 - 多线程有没有实际使用经验,在哪个场景下使用过?
- 多线程中run和start有什么区别?
- 线程异步或者同步分别怎么去实现?
- 线程池如何写?
四. 其他 - Switch支持long类型吗?不支持
因为switch中主要针对int,byte,short,char可隐式转化为int,而long类型转化为int时会丢失精度。所以暂不支持long。JDK7后增加了String类型。 - 堆栈的理解?
- String转成int或者Integer
int a=Integer.parseInt(String str) - Try,catch以及异常的合理抛出
- 垃圾回收有了解吗?介绍一下?
- StringBuild和StringBuffer的区别
- JDK8新增的功能有哪些?