int和Integet有什么区别?

  1. int是整型数字,是Java的8个原始数据类型之一。Java虽然号称一切皆是对象,但是原始数据类型除外
  2. Integer是int对应的包装类,它拥有一个int类型的字段用来存储数据,并提供了基本操作,如数***算,与其他类型之间的转换等。

Java的8中原始数据类型和对应的包装类

基本类型	 包装器类型
boolean		Boolean
char		Character
int			Integer
byte		Byte
short		Short
long		Long
float		Float
double		Double

基本数据类型的自动转换顺序:

byte(1)-> char(2)-> short(2)-> int(4)-> long(8)-> float(4)-> doube(8)

boolean类型没有规定所占字节

Java的自动拆装箱

自动装箱:

数值赋给包装类对象时自动实现:

如:
Integer i = 10;

自动实现:
Integer i = Integer.valueOf(10);

  • valueOf(n)方法首先会调用Integer的缓存(-128到127),如果在缓存范围内直接返回,否则new一个Integer对象返回。

自动拆箱:

包装类对象赋值给基本数据类型时自动实现:

如:
int b = i;

自动实现:
int b = i.intValue();