包装类的作用 : 将基本数据类型的值包装为引用数据类型的对象
基本类型对应的包装类
byte | Byte |
char | Character |
int | Integer |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
装箱 : 将基本数据类型的值再转为引用数据类型
拆箱 : 将引用数据类型的对象转为基本数据类型
1 // 装箱 2 int a = 20; 3 Integer in = new Integer(a); 4 System.out.println(in.toString()); // 20
Integer类常用方法
1 //static String toBinaryString(int i) 十进制转二进制 2 //static String toHexString(int i) 十进制转十六进制 3 //static String toOctalString(int i) 十进制转八进制 4 System.out.println(Integer.toBinaryString(10)); //1010 5 System.out.println(Integer.toHexString(10)); //a 6 System.out.println(Integer.toOctalString(10)); //12
1 // valueOf(int i) int转Integer 2 Integer in1 = Integer.valueOf(1); 3 // intValue() Integer转int 4 Integer in2 = new Integer(2); 5 int i = in2.intValue(); 6 // valueOf(String s) String转Integer 7 Integer in3 = Integer.valueOf("3"); 8 // parseInt(String s) 字符串转有符号十进制 9 int j = Integer.parseInt("4");
注意事项
1.包装类都重写Object类的toString()方法, 用字符串形式返回被包装的基本数据类型的值
2.除Character, 包装类都有valueOf(String s)方法. s不能为null, 且s必须可以解析为相应基本类型的数据
1 Integer i1 = Integer.valueOf("123"); // R 2 Integer i2 = Integer.valueOf("123a"); // F
3.除Character, 包装类都有parseXXX(String s)方法. s不能为null, 且s必须可以解析为相应基本类型的数据
1 int i1 = Integer.parseInt("123"); // R 2 int i2 = Integer.parseInt("123a"); // F
JDK5.0新特性-自动拆箱和装箱
JDK5.0之前, 数学运算表达式中的操作数必须是基本类型的, 并且运行结果也是基本类型, 包装类和基本类型是不允许进行混合数学运算的.
如果想运算, 必须通过拆箱将包装类对象转为基本数据类型的值才行
但是JDK5.0之后, 提供了自动拆箱和装箱技术, 可以自动进行基本数据类型和包装类对象的转换.
int num = 1; // 自动装箱 相当于Integer in = new Integer(num); Integer in = num;
Integer in = new Integer(1); // 自动拆箱 想当于int num = in.intValue(); int num = in;