什么是包装类型?
java设计当初就提供了八种基本数据类型以及对应的包装类。java是一种面向对象编程的高级语言,所以包装类正是为了解决基本数据类型无法面向对象编程所提供的。
下面是基本类型与对应的包装类型
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
boolean | Boolean |
short | Short |
char | Char |
int | Int |
long | Long |
float | Float |
double | Double |
举个例子
int和Integer有什么区别?
-
Integer是int的包装类,int则是java的一种基本数据类型
-
Integer变量必须实例化后才能使用,而int不需要
-
Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象,而int则是直接存储数据值。
-
Integer的默认值是null,int的默认值是0
包装类的应用场景
- 集合泛型只能是包装类
- 成员变量不能有默认值
- 方法参数允许定义空值
什么是装箱,拆箱?
-
装箱:基本数据类型转换成包装类型
-
拆箱:包装类型转换成基本数据类型
怎么理解强制类型转换?
强制显示的把一个数据类型转换为另一种数据类型
怎么理解自动类型转换?
数字表示范围小的数据类型可以自动转换为范围大的数据类型。
怎么理解类型提升?
在多种不同数据类型的表达式中,类型会自动向范围表示大的值的数据类型提升。