前提:为了能够将基本数据类型当成对象操作,Java为每个基本数据类型都引入了对应包装类型(wrapper class),从Java5开始引入了自动拆装箱机制,使二者可以互相转换。
基本数据类型 | 包装类型 |
---|---|
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
自动装箱就是Java编译器在基本数据类型和对应的对象包装类之间的一个转换。
比如自动装箱: int转换成Integer , char转换成Character
比如自动拆箱: Integer转换成int, Character转换成char
考考大家!那么大家现在知道int和Integer的区别了吗?
Int是Java的基本数据类型(原始数据类型或内置类型),Integer是Java为int提供的包装类(封装类)
看看案例:
Integer a = new Integer(5);
Integer b = 5; //将5自动装箱成Integer类型
int c = 5;
System.out.println(a == b);// false两个引用没有引用同一对象
System.out.println(a == c);// true a自动拆箱成int类型再和c比较
System.out.println(b == c);// true b自动拆箱成int类型再和c比较
附加知识点:
String不是最基本的数据类型哦!!!
String属于Java中的字符串类型,也是一个引用类型,并不属于基本的数据类型。
java.lang.String类是final类型的,因此不能继承这个类、不能修改这个类。