gpt4 book ai didi

java - 当我检查与原语的相等性时,等于运算符如何工作?

转载 作者:行者123 更新时间:2023-12-01 09:57:48 25 4
gpt4 key购买 nike

输出为:true,true*,false*case=1 和 case=2 发生了什么如果 case:1 为真,那么为什么?值5有不同的内存分配?我们知道“==”运算符根据内存或引用进行比较

   Integer a=new Integer(5);
Integer b=a;
System.out.println(a==b); //true i know
/*case:1 */System.out.println(a==5); //true? why

/*case :2 */ System.out.println(a==new Integer(5)); // false ? why

最佳答案

检查 Java 文档中的整数 https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html

比较对象的正确方法是使用 equals

public boolean equals(Object obj)

将此对象与指定对象进行比较。当且仅当参数不为 null 并且是包含与此对象相同的 int 值的 Integer 对象时,结果为 true。覆盖:等于对象类参数:obj - 要比较的对象。返回:如果对象相同则为 true;否则为假。

关于java - 当我检查与原语的相等性时,等于运算符如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37043470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com