字符串不是值類型,但我們仍然使用它的值類型。那麼,string s;
編譯成類似string s = new String(..);
?是「string s;」編譯爲「string s = new String(..);」?
0
A
回答
2
當您定義string s;
時,您只能定義一個引用,它當前根本沒有指向任何內容。由於字符串是引用類型,因此編譯器不會生成string s = new String(..);
。你可能會理解它,string s = null;
將是編譯結果。
對於值類型,例如int,情況是不同的。例如,當您定義int i;
時,它將編譯爲int i = 0;
,其中0是默認值。
0
我想通了我的困惑:在閱讀this後,我明白堆棧將持有參考s
將在初始化後分配在堆中。
+0
我不知道誰投了票,但你的理解比你在問題中表達的要好得多。但是,它仍然只涵蓋了一些字符串之謎。還有另一個重要的事情,使字符串特殊,http://msdn.microsoft.com/en-us/library/system.string.isinterned.aspx – 2012-03-11 11:05:33
相關問題
- 1. 聲明String s = new String(「abc」)。intern(); over String s =「abc」(反之亦然)
- 2. 在Java中,是String s = new String()有沒有用?
- 3. string s; &s+1;法律? UB?
- 4. python string u「%(word)s」
- 5. Double.valueOf(String s)和Double.ParseDouble(String s)有什麼區別?
- 6. 爲什麼string str = new string(「abc」)不能通過編譯器?
- 7. 如何使用System.Web.UI.Page.DecryptString(String s)?
- 8. TextView String(s)不出現
- 9. android getSystemService(String s) - 反射?
- 10. className.main(new String [] {「filename.txt」})?
- 11. force assertEquals(String s,Object o)使用o.toString()?
- 12. String和new String有什麼區別?
- 13. 對String [] s的列表進行排序?
- 14. 我無法使用Color.FromName(string s)方法
- 15. 在Android中String foo =「bar」與String foo = new String(「bar」)?
- 16. Map <String,Map <String,Boolean >> myMap = new HashMap <String,HashMap <String,Boolean >>();
- 17. HashMap <String,String> temp = new HashMap <String,String>();對於通圖像
- 18. 「string」!=「string」
- 19. String [] tempString = multipleValues.split(「 - 」);但是int創建數組的格式String [] array = new String [10];?
- 20. ComboBox.FindStringExact(string s) - 如果字符串s爲空,它有什麼用途返回0?
- 21. 如何將List [List [Map [String,String]]]轉換爲List [Map [String,String]]
- 22. 'String'不能轉換爲'String?'
- 23. 「new String()」導致GC_CONCURRENT語句?
- 24. Scanner.hasNext(String s)已爲 「\\ d \\ \\小號d」 失敗
- 25. String .contains another String
- 26. Convert.ToDecimal(string)&Decimal.Parse(string)
- 27. c string string strncpy
- 28. TypeScript - [string] vs string []
- 29. 值分裂不是(String,String)的成員
- 30. Integer.decode(String s)爲某些字符串拋出NumberFormatException
我不這麼認爲。 – BoltClock 2012-03-11 10:13:55
當你做'string s;'時,沒有任何東西被實例化。 – 2012-03-11 10:14:32
但是,如果它不是一個值類型,它必須用'new'實例化,不是嗎? – theateist 2012-03-11 10:15:36