欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 自动拆装箱

程序员文章站 2024-03-23 23:54:16
...

自动拆装箱

基本数据类型 包装类型
byte Byte
boolean Boolean
short Short
char Char
int Integer
long Long
float Float
double Double

自动装箱:把基本类型自动转换成包装类型的过程

自动拆箱:把包装类型自动转换成基本类型的过程

Integer i = 1;//自动装箱
int b = i;//自动拆箱

int 的自动装箱是通过Integer.valueOf()实现的。

Integer i = Integer.ValueOf(1);

Integer的自动拆箱是通过i.intValue()实现的

int b=i.intValue(); 

注:
Java中 “==” 比较的是对象,equals比较的是值。
自动拆装箱与缓存机制(仅在自动拆装箱时可用),
例如:当Integer类型的对象数值在-128到+127之间时进行装箱,整形对象在内部实现相同对象的引用实现缓存和重用。

public class Main {


    public static void main(String[] arges) {

        Integer integer1 = 3;
        Integer integer2 = 3;

        if (integer1 == integer2)
            System.out.println("integer1 == integer2");
        else
            System.out.println("integer1 != integer2");

        Integer integer3 = 300;
        Integer integer4 = 300;

        if (integer3 == integer4)
            System.out.println("integer3 == integer4");
        else
            System.out.println("integer3 != integer4");

    }
}

输出:
Java 自动拆装箱
弊端:
由于自动拆箱,如果包装类对象为null,那么自动拆箱时就有可能抛出NPE。

相关标签: Java