常考知识点
1、java的基本数据类型与包装类;
2、final修饰变量类方法;
3、String为什么是不可变的,以及new String(“abc”)创建了几个对象;
4、String、StringBuffer、以及StringBuilder的区别;
5、static修饰变量,方法,代码块;
6、重写跟重载的区别;
7、接口跟抽象类;
8、反射、继承、枚举、异常等知识点;
9、为什么要重写hashcode和equals方法,以及hashcode相同equals是否相同;
10、JDK 1.7与1.8之前的区别;
11、i++ 和 ++i;
集合相关
1、ArrayList的底层实现、扩容过程、add过程、Fail-Fast机制;
2、ArrayList与Linkedlist、Vectot的区别;
3、如何获得一个线程安全的List;
4、CopyOnWriteArrayList是如何实现线程安全的;
5、Linkedlist的底层实现,以及如何使用LinkedList实现一个LRU;
6、TreeSet、HashSet、LinkedHashSet的底层实现以及之间的区别;
7、PriorityQueue、LinkedBlockingQueue、ArrayBlockingQueue的实现以及区别;
8、HashMap的底层实现,扩容过程,达到阈值一定会扩容吗、put过程、树化过程,如何确定负载因子、以及为什么线程不安全和1.8做了哪些优化ÿ