1.final
- 被final修饰的类不可以被继承
- 被final修饰的方法不可以被复写
- 被final修饰的变量是一个常量,只能赋值一次
2.StringBuffer和StringBuilder
- StringBuffer是线程安全的
- StringBuilder是线程非安全的
- 线程安全:就是采用了加锁机制
- 线程不安全:没有采用加锁机制
3.List和Set
- List:元素是有序的,元素可以重复
- Set:元素是无序的,元素不可以重复
4.List中常见的三个子类
- ArrayList:底层采用数组结构。查询速度快,但是增删稍慢。线程不同步,效率高。
- LinkedList:底层采用的是链表数据结构。增删速度快,查询稍慢。
- Vector:底层采用的是数组结构。是线程同步的,效率低。被ArrayList取代
4.Set的子类
- HashSet:底层数据结构是哈希表。HashSet是如何保证元素的唯一性的?是通过元素的两个方法,HashCode和equals来完成的,如果元素的HashCode值相同,才会判断equals是否为true,如果元素的HashCode值不同,不会调用equals
- TreeSet:底层数据结构是二叉树
5.Map的子类
- HashTable:底层是哈希表数据结构,不可以存入null键null值
- HashMap:底层是哈希表数据结构,允许存入null键null值,线程不同步,效率高。
- TreeMap:底层是二叉树数据结构,线程不同步,可以给map集合中的键进行排序。