Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象来操作,Java为每个基本数据类型都引入了对应的包装类。int是八种基本数据类型之一,而Integer就是int 的包装类,从Java5开始引入了自动拆装箱机制,使得二者之间可以相互转换。
基本数据类型 | 包装类型 | 范围 |
---|---|---|
boolean | Boolean | 只有true和false两个取值 |
char | Character | 16位,存储Unicode码,用单引号赋值 |
byte | Byte | 8位,最大存储数据量是255,存放的数据范围是-128~127之间 |
short | Short | 16位,最大数据存储量是65536,数据范围是-32768~32767之间 |
int | Integer | 32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1 |
long | Long | 64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1 |
float | Float | 32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F |
double | Double | 64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加 |
例如:
class AutoUnboxingTest {
public static void main(String[] args){
Integer a = new Integer(3);
Integer b = 3; //将3自动装箱成Integer类型
int c = 3;
System.out.println(a==b); //结果为false,因为两个没有引用同一对象
System.out.println(a==c); //结果为true,因为a会自动拆箱成int类型再和c比较
}
}