美文网首页
关于java八大基础类型自动拆装箱知识整理

关于java八大基础类型自动拆装箱知识整理

作者: 一块自由的砖 | 来源:发表于2021-01-22 11:49 被阅读0次

八大基础类型

char、byte、short、int、long、float、double、boolean

八大包装类型

Charater、Byte、Short、Integer、Long、Float、Double、Boolean

什么是拆装箱

装箱:基本类型转变为包装器类型的过程。
拆箱:包装器类型转变为基本类型的过程。

//JDK1.5之前是不支持自动装箱和自动拆箱的,定义Integer对象,必须
Integer i = new Integer(8);
//JDK1.5开始,提供了自动装箱的功能,定义Integer对象可以这样
Integer i = 8;
int n = i;//自动拆箱

拆装箱的目的

java5以后引入了自动拆、装箱机制。装箱对基础类型进行自动转换引用类型,基础类型赋值的时候相当于调用了对象类型.valueOf(),拆箱则是相反的流程。之所以使用自动封装,主要是引入通过常量池,如果命中率比较高的化会提高性能。

使用应该注意的地方

1.包装类进行等值比较时,不管是否在常量池命中范围,不建议直接使用“==”判断,建议使用equals或是转换基本类型判断。
2.不要包装类和基础类混用

Integer s1 = 0;
        long t1 = System.currentTimeMillis();
        for(int i = 0; i < 1000 * 10000; i++){
            s1 += i;
        }
        long t2 = System.currentTimeMillis();
        System.out.println("使用Integer,递增相加耗时:" + (t2 - t1));

        int s2 = 0;
        long t3 = System.currentTimeMillis();
        for(int i = 0; i < 1000 * 10000; i++){
            s2 += i;
        }
        long t4 = System.currentTimeMillis();
        System.out.println("使用Integer,递增相加耗时:" + (t4 - t3));

实际输出:
使用Integer,递增相加耗时:81
使用int,递增相加耗时:7

相关文章

网友评论

      本文标题:关于java八大基础类型自动拆装箱知识整理

      本文链接:https://www.haomeiwen.com/subject/weeszktx.html