由于基本类型不属于引用类型,所以JAVA为了统一面向对象的思想,将8种基本类型都分别增加了对应的包装类,包装类都是引用类型;
基本类型转包装类:通过new包装类对象即可;
Integer integer = new Integer(10):
包装类转基本类型:通过包装类调用相应xxValue()方法即可;
Integer integer = new Integer(20);
int num = integer.intValue();
JAVA5以后,引入了自动装箱、自动拆箱;
自动装箱:基本类型转包装类;
自动拆箱:包装类转基本类型;
示例:
@Test
public void testWrapper() {
int num = 10;
this.method(num);
}
public void method(Object obj) {
System.out.println(obj);
}
method()方法接收的参数为Object类型,Object是引用类型,而测试中调用的时候,参数为int类型(基本类型),应该会报错,实际上不会,就是因为自动装箱的原理,使得在调用method()方法时,参数num完成自动装箱操作。
面试题
@Test
public void test2() {
Object obj = true ? new Integer(1) : new Double(2.0);
System.out.println(obj);
}
打印结果:1.0