色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java equals和==的區別

林子帆2年前7瀏覽0評論

在Java中,equals和==是兩個非常常見的用于比較兩個對象的方法。雖然它們看起來很相似,但實際上它們有很大的區別。

==是一個操作符,用于比較兩個變量的值是否相等。當比較兩個基本數據類型時,它比較它們的值;而當比較兩個對象時,它比較它們在內存中的地址是否相等。如果兩個對象的地址相等,那么它們是相等的,反之則不相等。

int a = 5;
int b = 5;
System.out.println(a == b); // 輸出true
String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2); // 輸出true
String str3 = new String("hello");
String str4 = new String("hello");
System.out.println(str3 == str4); // 輸出false

如上代碼所示,當比較基本類型變量a和b時,它們的值都為5,因此a == b返回true。而當比較兩個字符串變量str1和str2時,它們的值都是"hello",因此str1 == str2返回true。但當比較兩個字符串變量str3和str4時,它們的值也是"hello",但是它們的地址不同,因此str3 == str4返回false。

而equals是Object類的一個方法,它用于比較兩個對象是否相等。此方法的默認實現是比較兩個對象的地址是否相等,因此如果想比較兩個對象的內容是否相等,需要在自定義類中重寫equals方法。比較內容是否相等的方法應該由程序員根據具體情況自行編寫。

String str5 = new String("hello");
String str6 = new String("hello");
System.out.println(str5.equals(str6)); // 輸出true

如上代碼所示,調用equals方法比較兩個字符串對象的內容是否相等,返回true。

綜上所述,==比較的是變量的值或對象的地址,而equals比較的是對象的內容。因此,在使用時應該根據實際情況選擇使用哪個方法。