回答
這兩行代碼不會創建任何對象。字符串文字(如"a"
)放在string pool中,並在課程加載時可用。
如果你
String x = new String("a");
String y = new String("b");
兩個對象將在運行時創建。
這些問題/答案應該包括後續問題:
與文本字符串獲取字符串池創建。而通過新操作符的字符串則在堆內存中創建。
通過文字創建字符串的優點是,如果該字符串值已經在字符串池中可用,那麼每次創建新對象時都會通過新運算符獲得相同的引用新引用。
在你的情況下,你會得到相同的參考。所以只有對象。
當使用new運算符初始化字符串時,會創建新對象。 如果你這樣做
String s1 = new String(「string」);
String s2 = new String(「string」);
String s3 = new String(「string」);
所有這三個都會在堆中創建一個單獨的String對象。 而如果所有上面的字符串都是沒有new運算符的初始化,那麼首先在字符串池中檢查字符串是否存在。如果需要的字符串存在,那麼新的引用將開始指向現有的字符串。否則它會在池中創建新的字符串。例如:
String s1 =「string」;
String s2 =「string」;
String s3 =「string1」;
在上面的例子中,只有兩個字符串將在字符串池(「string」和「string1」)中創建。其中String s1和s2將引用單個對象「string」,s3將引用另一個字符串對象「string1」。
在上述情況下, String s1 = new String(「string」); String s2 = new String(「string」); String s3 = new String(「string」); 是否: 將創建4個對象 - 第一個對象將在Java永久堆內存中創建,作爲我們傳遞的參數的一部分 - 「string」。它將在字符串文字池中創建。 或3個物體? – AnswerDroid 2016-09-26 12:26:22
- 1. 的Java String對象的創建
- 2. Integer.parseInt(String)創建對象嗎?
- 3. String對象創建的連接結果
- 4. 什麼時候創建了String對象?
- 5. 的Java對象 - >的String []爲String []
- 6. 多少String對象將被創建
- 7. 創建Java對象,扭曲的對象
- 8. 創建對象的Java中
- 9. 對象創建JAVA
- 10. java創建對象建議
- 11. 如何從String創建HtmlUnit HTMLPage對象?
- 12. 創建適用於一個String對象
- 13. 將爲String創建多少個對象?
- 14. java如何隱式創建對象?就像String類
- 15. Java在對象內創建對象
- 16. 在下面的代碼中創建的String對象的總數?
- 17. 的Java HashSet的<String>對象
- 18. 從clojure創建Java對象
- 19. Java對象創建錯誤
- 20. Java創建新對象
- 21. 在java中創建對象
- 22. 創建對象與Java
- 23. 動態創建對象java
- 24. 如何從ArayList創建JSON對象<Map <String,String >>?
- 25. 使用C#創建IEnumerable <KeyValuePair <string,string >>對象?
- 26. 創建對象的對象
- 27. 創建對象的
- 28. 從GUI創建一個對象 - Java的
- 29. 用於創建對象的Java模式
- 30. 創建對象的Java調用類
這甚至沒有編譯。 – async 2014-09-28 09:22:37