List,Set,Map区别
    顺序列表、无重复集合、键值对,阐述自己常用的实现类

    ArrayList与LinkedList
    线程安全方面、底层数据结构、增删性能对比(注意特殊位置以及元素数量级)、快速随机访问、内存占用

    RandomAccess接口
    只是一个标识,标识是否支持快速随机访问,支持首选for循环,其次是foreach

    ArrayList与Vector
    主要区别就是Vector线程安全,所有方法就加了synchronized

    HashMap与Has hTable
    线程安全方面、效率方面、是否支持null作为key、初始容量(HashTable为11)和扩容机制不同(HashTable为2n+1)、底层数据结构不同(HashMap有树化机制)

    HashMap与HashSet
    HashSet方法基本都是调用HashMap的方法

    HashSet检查重复原理
    计算HashCode,如果遇到重复再调用equals比较

    HashMap底层实现
    数组+链表/红黑树

    HashMap长度为什么是2的幂次方
    主要围绕hash的均匀程度来阐述,从HashMap的下标计算方法开始,&可以提高运算效率

    HashMap1.7多线程环境下的死循环问题,头插法

    ConcurrentHashMap
    底层结构:1.7分段数组+链表,1.8数组+链表/红黑树
    线程安全实现:1.7分段分隔数组(16个Segment),每把锁锁住一个Segment,访问不同Segment的数据不会出现锁竞争;1.8摒弃Segment,数据结构和HashMap的一样了,每个Table使用synchronized和CAS实现线程安全,synchronized只锁定链表或红黑树的首节点,这样只要不发声hash冲突就不会出现锁竞争问题