有了基本数据类型,为什么还需要包装类型?

有了基本数据类型,为什么还需要包装类型?

装箱和拆箱

1、装箱:把基本的数据类型转换成对应的包装类。

例如:Integer.valueOf(1); 或者 Integer i = 1;(自动装箱)

自动装箱:实际上是在编译时会调用 Integer.valueOf(1);

2、拆箱:就是把包装类型转换为基本数据类型

例:Integer i = 1;

自动拆箱(实际上会在调用时调用 intValue() ):int j = i;
手动拆箱:int j = i = intValue()

有了基本数据类型,为什么还需要包装类型?

Java是一个面向对象的语言,而基本的数据类型,不具备面向对象的特征(封装、抽象、继承、多态)。

例如:用Integer和int分别表示Person这个类的ID,判断有没有这个值?
int 要判断是否为空 是否为0 两个来判断。
Integer 只需要判断是否为空就行了

另外,对象类型可以调用Max()、Min()等方法。

包装类还存在一个缓存值的概念

缓存值:对象缓存,
interger i = 1;
interger j = 1;
i == j; 是true。