大家好,又见面了,我是你们的朋友全栈君。
Integer int1 = 120, int2 = 120, in3 = 140, int5 = 200;
System.out.println(int1 == int2);
System.out.println(int3 == int5);
结果 int1==int2 true
int3==int5 false;
解释:首先四个都是Integer 对象,基本数据类型和包装类有自动装箱拆箱机制
在赋值的时候回自动调用 valueof() 方法
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
如果整形变量的值介于 -128 到 +127 之间 ,如果常量池中有这样的Integer 对象那么就取改对象,不会新建对象
转载于:https://my.oschina.net/u/2510361/blog/2353971
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107223.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...