Java中的==和equals方法都是用于比較兩個對象是否相等的,但它們的實現方式有所區別。
public class Example { public static void main(String[] args){ String str1 = "hello"; String str2 = "hello"; String str3 = new String("hello"); System.out.println(str1 == str2); // true System.out.println(str1 == str3); // false System.out.println(str1.equals(str3)); // true } }
在上面的代碼中,str1和str2都指向了同一個字符串常量,因此它們的引用地址是相同的,所以使用==比較時會返回true。而str3是一個新的字符串對象,因此它的引用地址和str1不同,使用==比較時會返回false;但是它們存儲的字符串內容是相同的,因此使用equals方法比較時會返回true。
總的來說,使用==比較兩個對象時,比較的是它們的引用地址是否相同;而使用equals方法比較兩個對象時,比較的是它們存儲的內容是否相同。