一、基本数据类型
基本数据类型:
整型:
byte ==》Byte ------------------------1字节
short ==》Short ------------------------2字节
int ==》Integer ------------------------4字节
long ==》Long ------------------------8字节
浮点:
float ==》Float ------------------------4字节
double ==》Double ------------------------8字节
字符:
char ==》Character ------------------------2字节
布尔:
boolean ==》Boolean ------------------------1字节
二、拆装箱
拆装箱
public static void main(String[]args){
Integer integer=1; //装箱
int i=integer; //拆箱
}
反编译之后:
public static void main(String[]args){
Integer integer=Integer.valueOf(1);
int i=integer.intValue();
}
所以得出
int类型的装箱是通过Integer.valueOf()得到,拆箱是通过integer.intValue()实现。
也就是说装箱是通过xxx.valueOf实现,拆箱是通过xxx.xxxValue实现
三、引用类型的比较
引用类型的比较
整数在-128 至 +127区间,两个同样的数字用 == 来比较没问题,但数字
大小超出这个范围,返回的结果就会变成false。因为integer使用了缓存
机制来提高性能。在区间内直接使用缓存,不需要重新创建对象。超出
之后则需要重新创建对象,这个时候需要用 equals 来进行比较值。
拆装箱虽然可以提高性能,但是在大量处理拆装箱数据时候也会浪费资源。
而且包装类型为null的时候,拆箱就会出现空指针异常(NPE)。