Q
內存分配
2
A
回答
7
這兩個變量將分別佔用引用所需的空間。
兩個引用都具有相同的值 - 也就是說,他們會引用同一個對象 - 由於字符串文字的內聯。換句話說,只會有一個String對象。然而,很多時候你執行這段代碼(至少在同一個類加載器中),x
和y
的值將始終指向相同的單個對象。
兩個變量仍是獨立的,當然 - 你可以改變一個,而不改變其他:
String x = "abc";
String y = "abc";
x = "def";
System.out.println(y); // Still prints abc
1
只有一個字符串,它被放置在字符串文字池。不管你多少次運行這兩行,例如在一個循環中,不會分配更多的對象。
編輯:如果你想創建更多的對象,你可以做到這一點。
String x = new String("abc"); // don't do this
String y = new String("xyz"); // don't do this either.
這會每次創建一個對象,因爲您已經告訴它。 ;)
1
這是關於Java中字符串文字的nice reference。我猜你有興趣在此報價:
如果使用的是常量 表達式,一個字符串文字, 參考現有字符串,或通過 明確使用
intern()
創建具有相同數據String
對象方法, 他們的引用將是相同的。
0
String x =「abc」;它會創建一個字符串對象和一個引用變量。 「abc」將進入池中,x將引用它。
相關問題
- 1. 內存分配
- 2. 內存分配
- 3. 內存分配
- 4. 內存分配
- 5. 內存分配
- 6. 內存分配
- 7. 內存分配
- 8. 分配內存
- 9. 內存分配
- 10. 內存分配
- 11. 內存分配
- 12. 內存分配
- 13. 內存分配Java
- 14. CRT內存分配
- 15. malloc內存分配
- 16. CComBSTR內存分配
- 17. 內存分配iphone
- 18. 內存分配C++
- 19. Android內存分配
- 20. TimerCallback.PerformTimerCallback內存分配
- 21. Silverlight內存分配
- 22. UITableViewCell內存分配
- 23. 內存分配,C++
- 24. System.LocalDataStoreElement []內存分配
- 25. typedef內存分配
- 26. OS:內存分配
- 27. 內存池分配
- 28. 內存分配** p
- 29. GPU內存分配
- 30. MPI內存分配
你是什麼意思「什麼是內存分配」?另外,這功課呢?你一直在問一系列與iPhone有關的問題,所以看到一個Java問題突然變得非常令人驚訝。 – BoltClock 2011-02-11 17:17:22
「內存分配」是什麼意思? – Argote 2011-02-11 17:17:44
我認爲OP在詢問字符串「abc」是否會被攔截。 – Juliet 2011-02-11 17:18:15