程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> string- 1為什麼是輸出是false 最好用內存圖解解釋下,謝謝了 內存知識不太懂,

string- 1為什麼是輸出是false 最好用內存圖解解釋下,謝謝了 內存知識不太懂,

編輯:編程綜合問答
1為什麼是輸出是false 最好用內存圖解解釋下,謝謝了 內存知識不太懂,

public class StringDemo {
public static void main(String[] args) {
String str1="Hello";
String str3=str1;
System.out.println("str1==str3"+":"+str1==str3);
}
}

為什麼是輸出是false 最好用內存圖解解釋下,謝謝了 內存知識不太懂,

最佳回答:


你是直接定義的字符串常量,本質上str1和str3是指向同一個常量池的。你的代碼之所以輸出false是因為你真正執行的是字符串"str1==str3:hello"和str3進行等操作
優先執行前面的字符串加操作,後執行後面的==操作了。
修正測試代碼:

    boolean flag = str1==str3;
        System.out.println("str1==str3:"+flag);

或者修正如下(加一括號提高優先級)

 System.out.println("str1==str3"+":"+(str1==str3));
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved