包装类
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;//隐式拆箱
5172

被折叠的 条评论
为什么被折叠?



