在说int和Integer的区别之前,先要弄清楚两个问题:
一、java基本数据类型及其封装类
二、java自动拆箱和自动装箱
一、java基本数据类型及其封装类
数据类型 字节大小 封装类
byte 8位 Byte
short 16位 Short
int 32位 Interger
long 64位 Long
float 32位 Float
double 64位 Double
boolean 1位 Boolean
java数据类型有基本数据类型和引用数据类型,为了方便将基本数据类型当作对象处理,java引入了基本数据类型相对应的封装类,如int封装类是Integer。
二、java自动拆箱和自动装箱
1、自动装箱
自动装箱其实就是将基本数据类型转换为引用数据类型(对象)
2、自动拆箱
自动拆箱其实就是将引用数据类型转化为基本数据类型
代码如下
public static void main(String[] args) {
Integer a = 1;//这里就用到了自动装箱;等同于Integer a = new Integer(1);
int b = a - 1;//对象不能直接进行计算,所以这里有自动拆箱的操作,将a对象转换成基本数据类型,然后-1
System.out.println(a);
System.out.println(b);
}
打印结果
1
0
三、int和Interger的区别