zoukankan      html  css  js  c++  java
  • Integer包装类中的IntegerCache结构


    public
    void test3() { Integer i = new Integer(1); Integer j = new Integer(1); System.out.println(i == j);//false:比较地址,是否是同一对象 //Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[], //保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在 //-128~127范围内时,可以直接使用数组中的元素,不用再去new了。目的:提高效率 Integer m = 1;//自动装箱 Integer n = 1;//自动装箱时调用了已经写好的Integer[]数组 System.out.println(m == n);//true Integer x = 128;//相当于new了一个Integer对象 Integer y = 128;//相当于new了一个Integer对象 System.out.println(x == y);//false } }

    Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],
    保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在
    -128~127范围内时,可以直接使用数组中的元素,不用再去new了。目的:提高效率

    扩展与延伸
    除了Integer之外,在其他包装类(例如:Byte,Short,Long等)中也存在类似的设计。

    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    Pyramid of Glasses 酒杯金字塔 [CF-676B]
    BZOJ 2456mode
    Hamburgers [CF-371C]
    lowbit
    two point
    大O表示法的理解
    6. 第 6 章 队列
    5. 第 5 章 栈
    3. 第 3 章 向量
    10. 第 10 章 指针
  • 原文地址:https://www.cnblogs.com/CCTVCHCH/p/14590770.html
Copyright © 2011-2022 走看看