一、final
二、List和Set
三、HashMap扩容机制原理
四、ArrayList和LinkedList 有哪些区别
五、HashMap和HashTable区别
六、ConcurrentHashMap扩容机制原理
七、CopyAndWriterList的底层原理是怎样
八、StringBuffer、StringBuilder、String有哪些区别
九、1.7 HashMap 1.8 HashMap 发生什么变化
十、java 1.7到1.8 虚拟机有什么变化
总结
1、修饰类:类不可被继承。
2、修饰变量:引用是不可变的。
3、修饰方法:方法不可以被重写。
1、Collect的子类 ;
2、List:有序可重复,Set:是无序不重复;
3、List:迭代器,for遍历,Set 只迭代器遍历;
4、底层:List 动态可变长度的数组,Set HashMap
1、负载因子0.75;
2、初始化是16长度;
3、1.7 数组 + 链表的机制;
4、1.8 数组+链表+红黑树;
ArrayList: 动态数组,可扩容,插入和删除如果涉及到扩容 和移动会损耗性能,效率低,指定下标复制;
LinkedList: 链表,上一个元素和下一个元素,遍历查询相对慢,但插入和删除快,指定下标插入遍历,实现Deque接口,作为队列使用;
遍历 : 迭代器,for
总结 :ArrayList在指定容量大小,不扩容和尾部添加,性能是大于链表的。
线程安全:HashMap 是线程不安全,HashTable 是线程安全(Synchronized);
是否允许有null:HashMap 允许有一个null key ,多个null value,HashTable key和value是都不允许有null。
1.7 sagment 十六个分段锁,单线程扩容;
18 多线程扩容;
写时会复制一份数据进行修改再重新指向;
共同点:都可以操作字符串;
线程安全:StringBuffer是线程安全;
反写:reser();
底层数据结构:
api变化:
插入:
元空间替代方法区
下一篇: 小学师生书法比赛活动方案