public class Demo{
public static void main(String[] arr){
Integer num1 = 100;
Integer num2 = 100;
Integer num3 = 500;
Integer num4 = 500;
System.out.println(num3==num4);
if(num1==num2){
System.out.println("num1 == num2");
}
else{
System.out.println("num1 != num2");
}
if(num3 == num4){
System.out.println("num3 == num4");
}
else{
System.out.println("num3 != num4");
}
}
}交单:
false
num1 == num2
num3 != num4`为什么第二个if语句(num3 == num4)是假的,其中两个数字的值都相同,请解释。
发布于 2020-09-17 03:44:58
整数是一个对象,需要使用equals进行比较。直接==是比较是否指向同一对象的引用,这不是您想要实现的。关于num1 == num2,请查看this链接以获得详细信息。为了在Java中节省内存,小的数字是临时的。因此,当比较num1和num2时,它们实际上是引用同一个对象。而num3和num4则分别指独立对象。
https://stackoverflow.com/questions/63930948
复制相似问题