包装类型应用及场景
1、包装类型
Java中提供了8种基本数据类型以及对应的8中包装类型。Java是一种面向对象编程的高级语言,所以包装类型正是为了解决基本数据类型无法面向对象编程所提供的。
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Char |
boolean | Boolean |
2、包装类型应用场景
- 集合类泛型只能是包装类型
- 成员变量不能游默认值
基本数据类型的成员变量都有默认值,如int 的默认值为 0 ,如果在定义中 0 代表失败,那么这样会有一定的问题,这样只能包装类型Integer,它的默认值为 null ,所以就不会游默认值的影响。 - 方法参数允许定义控制
如果方法参数定义的基本数据类型int ,那么在传值必须传一个数据过来,不能传 null 。但是在很多的场合下希望能传一个 null ,那么这个时候就不能定义成基本数据类型,而是要定义成包装类型。
3、自动装箱、拆箱
- 自动装箱、拆箱
Java 5 增加了自动装箱、拆箱机制,提供基本数据类型和包装类型的相互转换操作。 - 自动装箱
自动装箱即自动将基本数据类型转换成包装类型,在Java 5 之前,要将基本数据类型转换成包装类型这样做,如下:Integer i1 = new Integer (8); Integer i2 = (8); 自动装箱: Integer i3 = 8;
- 自动拆箱
自动拆箱即自动将包装类型转换成基本数据类型,与自动装箱恰恰相反。int i4 = i3; int i5 = ();
- 注意点:
关于Integer,-128~127会有缓存,对比这个范围的值的对象是一个坑。public class TestMain { public static void main(String[] args) { Integer a = 66; Integer b = 66; ("a等于b:" + (a == b));//结果是true Integer c = 166; Integer d = 166; ("c等于d:" + (c == d));//结果是false }}