美文网首页
Integer缓存机制

Integer缓存机制

作者: 夺命404 | 来源:发表于2019-12-03 23:41 被阅读0次
        Integer integer = 128;
        Integer integer1 = 128;

        Integer integer2 = 127;
        Integer integer3 = 127;
        System.out.println(integer == integer1);  // false
        System.out.println(integer2 == integer3); // true  --- why?

这是Integer中的缓存机制 默认缓存-128~127

Integer integer = 128;
我们进行反编译后: Integer integer = Integer.valueOf(128);

// 这是Integer的valueOf()方法  IntegerCache.low这是缓存最小值-128  IntegerCache.high这是缓存最大值127
public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)  // 如果在这个缓存范围内就直接返回缓存中的值
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);  // 如果不在范围内就返回一个新的实例对象
}

Integer a = 228;
int a1 = a; 这个反编译过来是 a.intValue();
拆箱默认调用包装类的方法intValue()返回值

包装器的缓存:

  • Boolean:(全部缓存)
  • Byte:(全部缓存)
  • Character(<= 127缓存)
  • Short(-128 — 127缓存)
  • Long(-128 — 127缓存)
  • Integer(-128 — 127缓存)
  • Float(没有缓存)
  • Doulbe(没有缓存)

相关文章

  • Integer缓存机制

    这是Integer中的缓存机制 默认缓存-128~127 Integer integer = 128;我们进...

  • 优秀博客集锦(一)

    理解Java Integer的缓存策略Java中Integer和其他包装类具有缓存机制,会缓存常用的一部分数字。 ...

  • Integer缓存机制

    Intgeter的缓存机制 Integer缓存的源码如下,IntegerCache在类加载的时候,创建了256个缓...

  • 2020-06-22:mark

    1. int和Integer类型之间的缓存关系 可能稍微了解一些的同学都知道Integer有一个缓存机制,Inte...

  • Integer的缓存机制

    英文原文:Java Integer Cache翻译地址:Java中整型的缓存机制原文作者:Java Papers翻...

  • Java中整型的缓存机制

    英文原文:Java Integer Cache 翻译地址:Java中整型的缓存机制 原文作者:Java Paper...

  • study plan

    一、Java基础 Integer实现原理及缓存机制[https://mp.weixin.qq.com/s/zvkS...

  • whc study plan

    一、Java基础 Integer实现原理及缓存机制[https://mp.weixin.qq.com/s/zvkS...

  • java知识整理-包装类型

    Integer的缓存 Integer内部实现了一个缓存,会缓存-128~127之间的数字。Integer在赋值的时...

  • Java基础-数据类型缓存解析

    基本类型缓存解析 Integer缓存解析: 1、使用自动装箱(Integer i = 1)方式创建Integer对...

网友评论

      本文标题:Integer缓存机制

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