我知道这个: 当您使用==比较两个对象时,它将比较对象的两个实例并检查它们是否相等。 当您使用.equals()时,它将比较2个对象的状态。
我们说这是我的代码:
String string1 = new String("abc");
String string2 = new String("abc");
Integer integer1 = new Integer(5);
Integer integer2 = new Integer(5);
int int1 = new Integer(6);
int int2 = new Integer(6);
if (string1 == string2)
System.out.println("The strings are equal");
if (integer1 == integer2)
System.out.println("The integers are equal");
if (int1 == int2)
System.out.println("The ints are equal");
为什么这段代码只打印“整体是平等的”?
答案 0 :(得分:1)
因为对象的值是保存对象值的内存位置,而基本类型的值是其值本身。例如,如果您在String类型的对象上使用==,那么您将比较它们的内存位置。
答案 1 :(得分:0)
==
比较引用,因为string是引用类型,而int
是值类型。
答案 2 :(得分:0)
那是因为在Java字符串中是对象,而对象只有在它们的引用时才是相同的。 (它们是同一个对象)
答案 3 :(得分:0)
对于字符串,您必须使用equals()
而不是==
,因为它是一个对象。