| 基本数据类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
以int和Integer为例:
//自动装箱,将int转换为Interger Integer integer = 1;
//自动拆箱,将Integer转换为int int n = integer;
其它的包装类类似,自动装箱调用valueOf()方法,自动拆箱调用xxxValue()方法
当自动装箱时传入的值在缓范围之中则直接拿缓存中的使用,否则才新建对象
| 包装类 | 缓存范围 |
|---|---|
| Byte | -128~127 |
| Short | -128~127 |
| Integer | -128~127 |
| Long | -128~127 |
| Float | 没有缓存,直接新建 |
| Double | 没有缓存,直接新建 |
| Character | u0000 ~ u007F(0 ~ 127) |
| Boolean | TRUE、FALSE |
测试:
@Test
public void test1(){
Integer integer1 = -128;
Integer integer2 = -128;
System.out.println(integer1 == integer2); //true
Integer integer3 = 127;
Integer integer4 = 127;
System.out.println(integer3 == integer4); //true
Integer integer5 = -129;
Integer integer6 = -129;
System.out.println(integer5 == integer6); //false
Integer integer7 = 128;
Integer integer8 = 128;
System.out.println(integer7 == integer8); //false
Integer integer9 = new Integer(127);
Integer integer10 = new Integer(127);
System.out.println(integer3 == integer9); //false
System.out.println(integer9 == integer10); //false
System.out.println("---------------------------------");
//只要等号的一方为基本数据类型,就是比较两者的值
int i1 = -128;
Integer integer11 = new Integer(-128);
System.out.println(i1 == integer1); //true
System.out.println(i1 == integer11); //true
int i2 = 127;
System.out.println(i2 == integer3); //true
System.out.println(i2 == integer9); //true
}



