係統粉 > 電腦問答 > 其他問答

已解決求助!變量問題

提問者:最愛大富翁4  |  瀏覽次  |  提問時間:2017-01-27  |  回答數量:5

求助!變量問題String str = new String(\"\");String str1 = \"\";if(str1==str){System.out.println(\"一樣\");}else{System.out.println(\"不一樣\");}複製代碼經過調試,知道輸出結果可是不大明白。意思

已有5條答案
__望崽丶

__望崽丶

回答數:135  |  被采納數:86

很簡單!

String str = new String("");
String str1 = "";
兩個方法定義的String類型 在內存中不是同一個對象
因此 用 ==來進行比較的話 返回的是false
如果你用equals來進行比較的話 返回的才是true
2017-01-27 19:52:13
讚 13
ypyzlz

ypyzlz

回答數:88  |  被采納數:64

如果要專業的解釋可以這麼回答告訴你

String str = "" ;
這樣的定義字符串類型 是個常量 也就是在常量池中有數據的存在,在編譯期間就能被確定下來
String str = new String("");
這樣的定義字符串類型 是個新建的(因為使用的關鍵字new) 在內存當中有自己的地址空間 因此不是常量 也就不能放進常量池中 因此在編譯期間就不能被確定下來 所以在運行的時候 隻是創建的新對象"" 而已

所以 使用==來進行比較的話 是不相等的,如果使用equals 或者equalsIgnoreCase來進行比較的話是相等的!
2017-01-27 20:49:19
讚 8
751393986

751393986

回答數:19  |  被采納數:1

http://bbs.cfanclub/read.php?tid=302968
2017-01-28 00:23:51
讚 1
夜楓楓丶

夜楓楓丶

回答數:17  |  被采納數:41

VC裏的CString可以這樣比較,java裏的String好像跟char*差不多
2017-01-28 02:47:15
讚 1
宮廷計助理

宮廷計助理

回答數:203  |  被采納數:28

[s:524]非常感謝三位。neo_pang 夠專業
2017-01-28 03:29:01
讚 20
相關問答
最新其他問答
解決方法