包装类
包装类分类
| 基本数据类型 | 
包装类 | 
| boolean | 
Boolean | 
| char | 
Character | 
| byte | 
Byte | 
| short | 
Short | 
| int | 
Integer | 
| long | 
Long | 
| float | 
Float | 
| double | 
Double | 
包装类和基本数据的转化
- 装箱底层调用的是valueOf 拆箱intValue
 
测试题
- 下面的代码是否正确
 
Double d = 100d; // ok
Float f = 1.5f; // ok
- 如下两个题目输出结果相同吗? 经典1.0
 
Object obj1 = true?new Integer(1) : new Double(2.0);// 整体 提升优先级
System.out.println(obj1);// 什么?1.0
Object obj2;
if (true)
    obj2 = new Integer(1);
else
    obj2 = new Double(2.0);
System.out.println(obj2); // 什么 1
包装类型和String类型的互相转换
// 包装类型 - String
Integer i = 10;
String s1 = i.toString();
String s2 = String.valueOf(i);
String s3 = i + "";
// String - 包装类型
Integer j = new Integer(s1);
Integer j2 = Integer.valueOf(s2);
Integer j3 = Integer.parseInt(s3);
public void method1() {
    Integer i = new Integer(1);
    Integer j = new Integer(1);
    System.out.println(i == j); // false 都是new出来的
    Integer m = 1;// 底层 Integer.valueOf(1) -> 原码 -128~127之前缓存IntegerCache取
    Integer n = 1;// 底层 Integer.valueOf(1)
    System.out.println(m == n); // true
    Integer x = 128;
    Integer y = 128;
    System.out.println(x == y); // false
}
// 实例1
Integer i1 = new Integer(1);
Integer i2 = new Integer(1);
System.out.println(i1 == i2); // false 都是new出来的
// 实例2
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4); // false 都是new出来的
// 实例3
Integer i5 = 127;// 底层 Integer.valueOf
Integer i6 = 127;// 底层 Integer.valueOf
System.out.println(i5 == i6); // true
// 实例4
Integer i7 = 128;
Integer i8 = 128;
System.out.println(i7 == i8); // false
// 实例5
Integer i9 = 127;// IntegerCache
Integer i10 = new Integer(127);// new
System.out.println(i9 == i10); // false 
// 实例6
Integer i11 = 127;// 
int i12 = 127;// 只有有基本类型 判断的是值是否相等
System.out.println(i11 == i12); // true
// 实例7
Integer i13 = 128;
int i14 = 128;// 只有有基本类型 判断的是值是否相等
System.out.println(i13 == i14); // true