在某些场合(集合)中要求所有的数据内容都是对象,但java中8种基本数据类型定义的变量并不是对象,为了满足该场合的需求就需要对变量进行对象化处理,此时借助包装类
常用的包装类
int => 采用java.lang.Integer类包装(重点) char => java.lang.Character类
byte => java.lang.Byte类 short => java.lang.Short类
long => java.lang.Long类 double => java.lang.Double类
float => java.lang.Float类 boolean=> java.lang.Boolean类
Integer类(重点)
java.lang.Integer类被final关键字修饰表示该类不能被继承。
该类的内部包装了一个int类型的变量作为该类的成员变量,实现了int类型的包装。
常用的方法
Integer(int value) - 根据参数指定的整数值来构造对象。
Integer(String s) - 根据参数指定的字符串来构造对象。
int intValue() - 用于返回该对象中的整数值。
static int parseInt(String s) - 用于将参数指定的字符串转换为整数并返回。
static String toBinaryString(int i) - 用于将参数指定的整数拆分字符串形式的二进制并返回。
static String toHexString(int i) - 用于将参数指定的整数拆分为字符串形式的十六进制并返回。
static Integer valueOf(String s) - 用于将参数指定的字符串转换为Integer对象
Integer it1 = new Integer(12);
System.out.println("it1 = " + it1); //自动调用toString() 12
Integer it2 = new Integer("34");
//Integer it2 = new Integer("34a"); 产生数字格式异常
System.out.println("it2 = " + it2); //34
编译器对包装类的支持
jdk5发布之前,使用包装类对象进行运算时,需要较为繁琐的“拆箱”和“装箱”操作,即运算前先包装类对象所封装的基本类型数据,运算后再将结果封装为包装类对象。
装箱和拆箱的概念
装箱就是指从int类型向Integer类型的转换。
拆箱就是指从Integer类型向int类型的转换。
从jdk1.5开始提供了自动装箱和自动拆箱机制。
Integer i = Integer.valueOf(100);
Integer j = Integer.valueOf(200);
Integer k = Integer.valueOf(i.intValue() + j.intValue());
------------------------------------------------------------------------------------------------
Integer i = 100;
Integer j = 200;
Integer k = i+j;
事实上,JDK5的自劢“拆箱”和“装箱”是依靠JDK5的编译器在编译器的“预处理”工作