包装类
Java中基本数据类型不是对象,但有时根据需求需要将其转换为对象并对其操作,这时就需要用到包装类。例如:将基本数据类型存储到Object[]中的操作。
基本数据类型 | 包装类 |
---|---|
int | Integer |
long | Long |
double | Double |
float | Float |
byte | Byte |
short | Short |
char | Character |
boolean | Boolean |
包装类的使用
JDK1.5后引入了自动装箱拆箱,详见下面代码。
Integer a = Integer.valueOf(100);//将int转化为Integer对象
Integer a2 = 100;//自动装箱,相当于上一句
Integer b = Integer.parseInt("123");//字符串-->Integer对象
String c = Integer.toString(1234);//Integer对象-->字符串
int d = a.intValue();//转化为int类型
int d2 = a2;//自动拆箱,相当于上一句
int max =Integer.MAX_VALUE;//int能表示的最大整数
值得注意的是对于整型和char类型所对应的包装类,对于-128~127会有缓存处理,即当类在加载时,就已经创建好了-128到127之间的每个值的对象,当自动装箱或者手动valueOf时,先判断是否在-128到127之间,如果是,则直接获取其创建好的对象的引用。
Integer integer = Integer.valueOf(100);
Integer integer1=Integer.valueOf(100);
System.out.println(integer == integer1); //true,同一对象
System.out.println(integer.equals(integer1)); //true
integer = Integer.valueOf(1000);
integer1=Integer.valueOf(1000);
System.out.println(integer == integer1); //false,不同对象
System.out.println(integer.equals(integer1)); //true