1 public class Test {
 2     public static void main(String[] args) {
 3         Integer i1 = 100;
 4         Integer i2 = 100;
 5         Integer i3 = 128;
 6         Integer i4 = 128;
 7 
 8         System.out.println(i1 == i2); // true
 9         System.out.println(i3 == i4); // false
10     }
11 }

由于JVM中缓存部分基本类型的包装类型对象,其中integer最小值是-128不可变,默认最大值为127,且最大值不能小于127,可通过jvm参数: -Djava.lang.Integer.IntegerCache.high=1024 修改为1024,其他类型可参考源码。

包装类型基本数据类型缓存对象(基本数据类型值)
Boolean boolean true,false(全部值)
Byte byte -128~127(全部值)
Short short -128~127
Character char 0~127
Integer int -128~127(默认为127)
Long long -128~127
Float float 无缓存值
Double double 无缓存值

本文参考https://blog.csdn.net/qq_36405172/article/details/92656926

posted on 2020-06-04 10:59  idanyang  阅读(133)  评论(0编辑  收藏  举报