JavaSE 07
1. String相关
-
字符串在串池中只会有一个对象
-
常量加常量,结果在串池中;常量加变量,变量加变量,结果在堆中;intern方法将堆中转移到串池里
-
双引号的内容,和final修饰的变量被视作常量
2. 集合相关
-
Collection特点:有个Iterator迭代器
-
List特点:有序,有下标,可重复(序、标、重)
-
集合遍历三种方式
-
迭代器遍历(来自Iterator)
-
增强for(来自List)
-
下标遍历(来自List)
-
ArrayList:
-
创建对象时,底层数组长度默认为0(jdk1.8之后,在此前是默认大小10)
-
在第一次添加元素时,才会真正分配大小
Set
-
无序:指的是添加顺序和遍历顺序不一致
-
去重:需要了解原理(HashSet去重原理是hashCode和equals,其中任意一个不同就可以添加;TreeSet去重原理是compareTo,若为0,则不能添加)
HashSet
- 底层是HashMap,HashMap底层是:数组+链表+红黑树(链表长度>8且数组lenth>64该链表会转换为红黑树,链表长度<6则会将红黑树转为链表)
排序
-
自然排序:指实现了comparable接口的方式
-
定制排序:在需要的地方传入一个比较器Comparator的方式
3. 快速失败
-
Collection包下的都是快速失败的
-
Concurrent包下的都是安全失败的
-
快速失败的原因:modifycount(在遍历的时候进制操作,否则抛出并发修改异常)