在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()”方法比較的是兩個對象的內容,如果它們的內容相同,那么它們是相等的。