int和Integet有什么区别?
- int是整型数字,是Java的8个原始数据类型之一。Java虽然号称一切皆是对象,但是原始数据类型除外
- 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();