String att = "siva";
String ptt = "siva";
System.out.println("__________________________ptt.equals(att)_______"+ptt.equals(att));
**System.out.println("__________________________att == ptt________"+att == ptt);**
if(att == ptt){
System.out.println("true");
}else{
System.out.println("false");
}
在我的日誌我發現以下的輸出:是什麼時候串==是的System.out.println(用於比較與差),並在if語句
__________________________ptt.equals(att)_______true
**false**
true
這裏如果你看看java代碼和日誌(粗體)。它們是有區別的 。
- 在打印聲明中,我給出了一些長文本的下劃線。它沒有出現。
- att == ptt在打印語句中給出時爲false。如果條件滿足,則爲true。
已知我知道, 什麼是參考和什麼是對象。
att == ptt和att.equals(ptt)有什麼區別。
字符串的不變性。
但只是知道爲什麼它以不同的形式打印時返回false和true?以及爲什麼我在打印語句中輸入的文本沒有反映在日誌中?
請糾正它,如果我錯了..或如果任何額外的輸入是必需的。
@Abimaran說的是正確的...在'println()'語句環繞'att == ptt'中打印'true',其中括號如'(att == ptt)',其中圓括號優先於連接 – Pokuri
要理解發生什麼,應該閱讀有關運算符優先級http ://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html –