对Integer类中的私有IntegerCache缓存类的一点记录

Posted molisiye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对Integer类中的私有IntegerCache缓存类的一点记录相关的知识,希望对你有一定的参考价值。

对Integer类中的私有IntegerCache缓存类的一点记录

  // Integer类有内部缓存,存贮着-128 到 127。
  // 所以,每个使用这些数字的变量都指向同一个缓存数据
  // 因此可以直接使用 == 来比较是否相等
  Integer a = 88;
  Integer b = 88;
  System.out.println(a == b); // true

  // 下面这个不在Integer缓存类里的数字,在每次赋值的时候都会新建一个对象存放
  // 所以,它们不能使用 == 来判断是否相等,而只能使用equals方法来比较
  Integer d = 800;
  Integer c = 800;
  System.out.println(d == c); // false
  System.out.println(d.equals(c)); // true

以上是关于对Integer类中的私有IntegerCache缓存类的一点记录的主要内容,如果未能解决你的问题,请参考以下文章

Integer IntegerCache源码

Integer缓存IntegerCache详解

反射IntegerCache来动态修改Integer缓存池里的数值

反射IntegerCache来动态修改Integer缓存池里的数值

反射IntegerCache来动态修改Integer缓存池里的数值

反射IntegerCache来动态修改Integer缓存池里的数值