记一个java基础相关的点

 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

作者:idanyang

出处:http://www.cnblogs.com/idanyang/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/idanyang/p/13042225.html