5.3 泛型ArrayList
ArrayList 具有自动调节数组容量的功能。
声明和构造:
ArrayList<Employee> staff = new ArrayList<Employee>();
Java SE 7后,可以省去右边的类型参数:
ArrayList<Employee> staff = new ArrayList<>();
5.4 对象包装器与自动装箱
将基本数据类型转换为对象。
Integer, Long, Float, Double, Short, Byte, Character, Void, Boolean (前个6类派生与公共的超类Number)
对象包装器类是final类。
调用
list.add(3);
将自动地变换成
list.add(Integer.valueOf(3));
这种变换称为自动装箱(autoboxing)。
相反地,编译器会将下列语句
int n = list.get(i);
翻译成
int n = list.get(i).intValue();
称为自动拆箱。
下面的比较通常不会成立:
5.5 参数数量可变的方法
这两条语句一个调用包含两个参数,一个包含三个参数,但他们调用的都是同一个方法:
实际上,Object... 与 Object[] 完全一样。
允许将一个数组传递给可变参数方法的最后一个参数。
5.6 枚举类
public enmu Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE };
实际上,这个声明定义的类型是一个class类,它刚好有4个实例,在此尽量不要构造新对象。