参考文章:5分钟彻底理解-Java自动装箱、拆箱
基本数据类型对象包装类:
为了更方便地操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为,丰富了该数据的操作。
原始类型 | 包装类型 |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
float | Float |
int | Integer |
long | Long |
short | Short |
double | Double |
public class test {
public static void main(String[] args) {
Integer a = new Integer("3");
Integer b = new Integer(3);
System.out.println(a);
System.out.println(a.getClass());
System.out.println(b);
System.out.println(b.getClass());
System.out.println(a == b);
System.out.println(a.equals(b));
}
}
打印结果:
3
class java.lang.Integer
3
class java.lang.Integer
false
true
JDK1.5以后,简化了定义方式
Integer a = new Integer("3");//可以直接写成
Integer a = 4;// 自动装箱
a = a + 5; // a = new Integer(a.intValue() + 5); 自动拆箱,通过intValue方法
public class test {
public static void main(String[] args) {
Integer x1 = 127;
Integer y1 = 127;
//JDK1.5以后,自动装箱,如果自动装箱的是一个字节,那么该数据会被共享,不会重新开辟空间
System.out.println(x1==y1);
System.out.println(x1.equals(y1));
Integer x2 = 128;
Integer y2 = 128;
System.out.println(x2==y2);
System.out.println(x2.equals(y2));
}
}
打印结果:
true
true
false
true