包装类:将基本数值包装成对象,并提供很多操作对象的方法。
基本数据类型 | 包装类 |
byte | Byte |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
short | Short |
Integer:(继承 number,实现comparable方法)
1. 方法和属性:
MAX_VALUE:封装int的最大值。
MIN_VALUE:封装int的最小值。
toBinaryString(int i):将int类型以二进制返回。
toHexString(int i):将int类型以十六进制返回。
toOctalSting(int i):将int类型以八进制返回。
parseInt(Stirng s):将字符串形式的数值转换成十进制的数值。(同理 其他包装类也有parseXXX(String s),只有character没有)。
parseInt(String s ,2):将二进制的字符串s转换成十进制
parseInt(String s ,16):将十六进制的字符串s转换成十进制
parseInt(String s ,8):将八进制的字符串s转换成十进制
2. 基本数据类型转换成包装类
1. Integer i1 = new Integer(4);
2. Integer i2 = new Integer("4");
3. Integer i3 = Integer.value(4)(返回 new Integer(4));
3. 包装类转换基本数据类型
int num = i.intValue();
4. 自动拆装箱(jdk 1.5后)
自动装箱
Integer i = 4 ;(内部源码:Integer.valueof(4))
自动拆箱
i = i + 5; (原理:等会右边将对象转换为基本数值 i.intValue() + 5,等号左边加法运算后,再次装箱)
5.面试题
Integer a = new Interger(4);
Integer b = new Interger(4);
System.out.println(a==b);false
System.out.println(a.equals(b));ture
Integer a = 127;
Integer b = 127;
System.out.println(a==b);ture
System.out.println(a.equals(b));ture
Integer a = 128;
Integer b = 128;
System.out.println(a==b);flase
System.out.println(a.equals(b));ture
总结:jdk1.5装箱时如果数值在byte范围内,不会创建新的的对象空间,而是使用原来已有的内存空间 。