包装类
- 基本数据类型 8种 - 包装Object
- 引用类型 Object
- 满足一切皆对象
byte | short | int | long | float | double | char | boolean |
---|---|---|---|---|---|---|---|
Byte | Short | Integer | Long | Float | Double | Character | Boolean |
包装类型数值不可变, 多了 null, 使用上可以无缝切换
Integer
Integer i = new Integer(10);// 10
i = new Integer("10");// 10
System.out.println(Integer.MIN_VALUE);// -2147483648
System.out.println(Integer.MAX_VALUE);// 2147483647
// 字符串变成对应的基本数据类型
Integer i2 = Integer.valueOf(5);// new Integer(5),5
i2 = Integer.parseInt("15");// 15
// 按给定的进制,转换值
i2 = Integer.parseInt("15", 10); // 15
i2 = Integer.parseInt("15", 16); // 21
i2 = Integer.parseInt("10010", 2);// 18
Integer i1 = 200;
Integer i2 = 200;
// Integer也有常量池: -128~127 byte取值范围
// 超过常量池的范围,都是new对象
System.out.println(i1 == i2); // 20:true 200:false
System.out.println(i1.equals(i2));// true
Integer i3 = new Integer(20);
Integer i4 = new Integer(20);
System.out.println(i3 == i4);// false
System.out.println(i3.equals(i4)); // true
Integer i = 20;
int a = 30;
Class c1 = i.getClass();
// 基本数据类型,可以有字节码类型
Class c2 = int.class;
System.out.println(c1 == c2);// false
// i = Integer.valueOf(a); -- 编译器自动调用
i = a; // Integer = int -> 自动装箱
// a = i.intValue(); -- 编译器自动调用
a = i; // int = Integer -> 自动拆箱