包装类型和基本类型的转换(自动装箱/自动拆箱)

 ①包装类型->基本类型

 包装类型和基本类型的转换(自动装箱/自动拆箱)_第1张图片

②基本类型->包装类型

        //第一种:直接创建对象
        Integer y=new Integer(20);
        //第二种:使用Integer类的静态方法valueOf()
        Integer z=Integer.valueOf(30);

 

JAVA对以上内容的简化:
自动装箱(基本类型->包装类型) 

包装类型和基本类型的转换(自动装箱/自动拆箱)_第2张图片

隐式使用了valueOf()方法。 

证明:

对象i和对象c地址相同!每当我们new一个新对象时,会开辟一个新的内存,可是当我们给i和c都赋值为a,发现他们的地址相同!因此可以证明并未新建对象,而是使用了valueOf()方法。

包装类型和基本类型的转换(自动装箱/自动拆箱)_第3张图片

valueOf():

包装类型和基本类型的转换(自动装箱/自动拆箱)_第4张图片 

当值在-128~127之间时,会返回同一个对象,否则新建对象。(缓存的概念,利用了缓存,即提高了程序的执行效率,又节约了程序所占内存) 


自动拆箱(包装类型->基本类型

 包装类型和基本类型的转换(自动装箱/自动拆箱)_第5张图片

隐式调用了对象.intValue()方法 

你可能感兴趣的:(JAVA,面向对象,java)