Java拾贝第六天——包装类

发布时间 2023-10-19 21:14:56作者: ocraft

Java拾贝不建议作为0基础学习,都是本人想到什么写什么

基本数据类型怎么变化引用数据类型(对象)

Java为每种基本类型都提供了对应的包装类型:

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

因为基本数据类型和包装类一一对应。所以Java提供了转换功能。

即自动装箱和自动拆箱。

自动装,拆箱

    public static void main(String[] args) {
        int i = 10;//声明一个基本数据类型
        Integer integer = new Integer(i);//装箱,将基本数据类型变为包装类
        int j = integer.intValue();//拆箱,将包装类变为基本数据类型
    }

上述代码为手动装拆箱
下述代码为自动装拆箱

    public static void main(String[] args) {
        Integer i = 10;
        int j = i;
    }

只是编译阶段的自动装拆箱,其目的是简化代码,运行过程Java自动完整了代码
拆箱可能会NullPointerException

注意!!!
因为是引用类型,不能拿运算符==去进行比较

    public static void main(String[] args) {
        Integer i=5000;
        Integer j=5000;
        System.out.println(i==j);
    }
//false

引用数据类型==比较的是地址值,需equals进行比较内容。

    public static void main(String[] args) {
        Integer i=5000;
        Integer j=5000;
        System.out.println(i.equals(j));
    }
//true

缓存优化
Java会把小于等于127的Integer转为int。尽管如此引用类型还是要优先使用equals比较。

    public static void main(String[] args) {
        Integer i=127;
        Integer j=127;
        Integer i1=128;
        Integer j1=128;
        System.out.println(i==j);
        System.out.println(i1==j1);
    }
/*
true
false
*/