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等)中也存在类似的设计。

    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    [COCI20142015#1] Kamp
    [CEOI2007]树的匹配Treasury
    [JLOI2016/SHOI2016]侦察守卫
    [POI2015]MOD
    [BJOI2017]机动训练
    [九省联考2018]一双木棋chess
    [清华集训2012]串珠子
    [POI2014]ZALFreight
    [SHOI2009]舞会
    [COCI2019]Mobitel
  • 原文地址:https://www.cnblogs.com/CCTVCHCH/p/14590770.html
Copyright © 2011-2022 走看看