在Java编程中,有两个比较运算符可以用来比较两个对象: “==”和“equals()”方法。虽然这两个运算符看起来很相似,但它们实际上是有很大区别的。
// =="=="运算符判断两个对象是否相等 String str1 = "Hello World"; String str2 = "Hello World"; if (str1 == str2) { System.out.println("str1 and str2 are the same object"); } else { System.out.println("str1 and str2 are different objects"); }
在这个例子中,我们创建了两个相同的字符串。 如果我们使用“==”运算符来比较这两个对象,那么输出语句将会告诉我们这两个对象相同。 原因是这两个字符串使用了相同的对象引用。
// equals方法比较两个对象内容是否相等 String str1 = "Hello World"; String str2 = new String("Hello World"); if (str1.equals(str2)) { System.out.println("str1 and str2 have the same value"); } else { System.out.println("str1 and str2 have different values"); }
这个例子使用了“equals()”方法来比较两个字符串。 如果这两个字符串的内容相同,那么输出语句将会告诉我们它们有相同的值。
因此,要记住: “==”运算符比较的是两个对象的引用地址,如果这两个引用指向同一个对象,那么它们是相等的。 而“equals()”方法比较的是两个对象的内容,如果它们的内容相同,那么它们是相等的。