Vector和ArrayList的区别
(1)Vector原来的方法的名称比较长,ArrayList的方法名比较短
(2)Vector是线程安全的(同步)加的同步锁,效率低
ArrayList是线程不安全的(不同步),没有加锁,效率高
StringBuilder和StringBuffer的区别
(1)StringBuilder 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。线程不安全的(不同步),没有加锁,效率高
(2)StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 线程安全的(同步)加的同步锁,效率低
数组(Array)和集合(List)的区别
(1)数组的长度固定,集合的长度可变
(2)数组既可以存储基本数据类型数据,也可以存储引用数据类型
集合只能存储引用数据类型
HashMap 和 HashTable的区别
(1)HashMap是线程不安全的,是不同的,没有加同步锁,效率高
(2)HashTable是线程安全的,是同步的,加了同步锁,效率比较低
(3)HashMap是可以存储null值null键的。
(4)HashTable是不可以存储null值null键的,是唯一一个与文件操作的集合。