當前位置:係統粉 > 電腦問答 > 其他問答 > 求助!變量問題

求助!變量問題

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

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

已有5條答案
__望崽丶

__望崽丶

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

2017-01-27 19:52:13
很簡單!

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

ypyzlz

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

2017-01-27 20:49:19
如果要專業的解釋可以這麼回答告訴你

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

所以 使用==來進行比較的話 是不相等的,如果使用equals 或者equalsIgnoreCase來進行比較的話是相等的!
讚 8
751393986

751393986

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

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

夜楓楓丶

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

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

宮廷計助理

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

2017-01-28 03:29:01
[s:524]非常感謝三位。neo_pang 夠專業
讚 20
解決方法
版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航