在java(1.6或更早版本)中,是否有任何類型的對象不受垃圾回收處理?是否有任何不受垃圾回收處理的對象?
0
A
回答
1
所有的java對象都會被垃圾收集。然而,本地資源不是由垃圾收集器直接管理的,有些像窗口句柄(JFrame)在實現finalize()方法時被垃圾收集器釋放,其他需要手動資源管理。
此外,jvm在關閉之前不必收集現有對象,這可能會導致微妙的錯誤,如數據不會刷新到磁盤。
最後還有針對實時系統或智能卡的Java規範擴展,其中包含非託管內存,以實現性能和資源原因。但是這不適用於標準的jvm。
1
也許你已經聽說過弱,軟和幻影參考。檢查這 http://weblogs.java.net/blog/2006/05/04/understanding-weak-references
1
這取決於你說什麼'對象'的意思。除字符串外的所有基本類型以及未在JVM堆上分配的所有數據(使用新操作符)不受GC影響。其他一切都以GC爲準。
1
根據實現情況,即使靜態字段保存在「對象」(您可以在堆轉儲中看到)中,這些對象在拋棄Class時會被清除。
你可能指的是代理數據結構。這些包括GUI組件,線程和直接/內存映射的ByteBuffers。在任何情況下,對象都在堆上,但是數據結構不在堆上。
相關問題
- 1. 垃圾收集器如何確定對象是否是垃圾?
- 2. python對象,垃圾回收
- 3. 有資格垃圾回收的對象
- 4. 垃圾回收如何處理集合對象?
- 5. 是否有任何功能語言沒有垃圾回收
- 6. Android/Java對象沒有垃圾回收
- 7. PHP中是否有垃圾回收?
- 8. Ruby:標記垃圾回收的對象
- 9. JAVA中的多對象垃圾回收
- 10. 內部對象的垃圾回收
- 11. 因垃圾對象引用而導致的java垃圾回收
- 12. Java短暫對象和垃圾回收
- 13. Ruby類對象垃圾回收
- 14. dot net內存處理,CLR垃圾回收器是否處理其他資源?
- 15. 垃圾收集如何處理對象引用?
- 16. 垃圾收集對象
- 17. 垃圾回收器如何處理靜態類使用的對象?
- 18. 是否有可能爲垃圾收集「查看」對象圖?
- 19. ParameterizedThreadStart是否保證對象實例不會被垃圾收集?
- 20. 對象沒有垃圾收集
- 21. 如何判斷一個對象是否被垃圾收集
- 22. WinRT是否有垃圾收集?
- 23. 垃圾收集器是否有配置?
- 24. C#中的垃圾回收;在特定線程中處理對象
- 25. java垃圾回收
- 26. Java:垃圾回收
- 27. Python垃圾回收
- 28. C#垃圾回收
- 29. Erlang垃圾回收
- 30. java - 垃圾回收
你的意思是說你聽說過一些對象沒有被垃圾收集? – jkschneider
@jskchneider:根據我讀過的文章,它指定「程序也可以創建不受垃圾收集影響的對象」,但他們沒有特別指定對象。 – Saravanan
沒有這樣的對象類型。有些對象可以被本機代碼(JNI引用)固定,但是它們再次被垃圾收集器檢查,只是被認爲是根。 – bestsss