包装类
java中每个基本数据类型都有其对应的包装类,如下表:
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
有缓存的包装类: Byte Short Integer Long Character
无缓存的包装类: Float Double
对于以下代码:
Integer a=100;
Integer b=100;
System.out.println(a==b);//输出结果为True
Integer c=1000;
Integer d=1000;
System.out.printlin(c==d);//输出结果为False
Integer a=100时调用的其实是valueOf(int i)的方法,按住Crtl点击代码中的Integer,可查看底层源码,找到valueOf方法
可以看到i的值在low~high之间。按住Crtl点击low与high,可查看到:
可以看到low的值为-128,而high=h,h的值为127,所以上述a==b的时候100在其范围里,输出true;而1000超出了该范围,所以输出结果为false。
包装类的装箱与拆分
装箱:就是将基本数据类型转换成包装类
拆箱:就是将包装类转换成基本数据类型
Integer a=100;//隐式装箱
Integer b=new Integer(10);//显式装箱
int c=a.intValue();//显式拆箱
int d=a;//隐式拆箱