泛型
class 泛型类名称<类型形参列表> {
// 这里可以使用类型参数
}
class ClassName<T1, T2, ..., Tn> {
}
- 泛型存在的含义是能支持不同类型的参数
- 泛型不能直接实例化,需要先new Object再进行强转
- 泛型是编译期的机制,和运行时无关,在运行时的效果等同Object
包装类
&emps;&emps;基本类型一般和引用类型无直接关联,所以泛型中的类型形参列表不可直接传基本类型的实参,而包装类解决了这一问题,包装类与之对应的基本类型用法类似,不过包装类是引用类型,可以做为泛型的参数,也可以表示null。
对应关系如下:
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolaen |
装箱:把基本类型转换成包装类,存在自动装箱
拆箱:把包装类转换成基本类型,存在自动拆箱
//装箱
int i = 10;
Integer ii = new Integer(i);
//拆箱
int j = ii.intValue();
包装类是不可变类型,即不可以改变其值,要想改变需要创建新的包装类对象。