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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号