美文网首页
关于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