Java数据结构——包装类和泛型
1.包装类
1.基本类型对应的包装类
由于基本类型不是继承自Object,所以为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了包装类
2.装箱(装包);拆箱(拆包)
1.装箱——把基本类型转为包装类
2.拆箱——把包装类转为基本类型
3.注意:Integer.valueOf()的返回值
如果传入参数的值不在[-128,127]范围内,返回的就是new的对象,所以地址打印false
2.泛型(将数据类型参数化,进行传递)
1.导引
这样定义一个数组,可以传入各种类型的数据。但是在接收每个下标对应的元素时,需要确定其真实的类型是什么。
如果这个数组有10000个元素,那不可能在打印每一个元素时都找到其对应的类型!
所以要指定这个数组只能放哪种类型的数据,放入其他类型就会报错!
所以引出了泛型
2.泛型
类名后加<T>——表明当前类是一个泛型类
根据上两张图可以得出泛型的优点:编译时自动进行数据类型转化和检查
注意:1.<>里的类型参数不能是基本类型
3.泛型的擦除机制
并且由于编译时自动进行数据类型转化和检查,所以在JVM中没有泛型的概念