1
A
回答
1
在Java虛擬機中,所有數據都是鍵入的,這意味着JVM可以將引用與其他數據區分開來。能夠區分對其他數據的引用是垃圾收集成爲可能的幾乎必要的要求。
垃圾回收器遍歷堆,堆棧和常量池,搜索引用。通常,所有被引用的對象都被標記。然後標記的對象遍歷引用,並且引用的對象又被標記。
如果沒有未跟蹤的引用,則可以確保所有未標記的對象不再可訪問並且可以處置。
這可能是最基本的垃圾收集形式,稱爲標記和清掃垃圾收集器。
請注意,Java標準不要求存在垃圾回收器。實現該標準的JVM永遠不會釋放任何內存。
+0
謝謝,你的確如我所期待的那樣 – user3314027
0
這裏必須有一百個答案,但也許沒有一個很簡單 - 有很多複雜的方法來解釋這:)。我會試一試,以便在此問題被標記爲重複之前,您可以看到它。
- 它需要的東西,它知道你「想要」就像一個可見的窗口或一個活動線程 。在更復雜的答案中有這些事情的明確列表。
- 它列出了可能訪問這些重要的點的方法。
- 它刪除了其他的東西。
2
有許多策略,但通常它會遍歷對象圖(通過從稱爲GC根的特殊對象開始)並標記它可以在圖中找到的那些對象。堆中沒有標記的任何對象本質上都是垃圾,因爲它無法從對象圖中的任何其他對象訪問。
如需更詳細的治療,請查看Oracle's documentation on the JVM's garbage collector和this article。
相關問題
- 1. Android - 檢測垃圾收集
- 2. 垃圾收集器
- 3. 垃圾收集
- 4. 垃圾收集器如何確定對象是否是垃圾?
- 5. 垃圾收集java
- 6. DoctrineCommonCache垃圾收集?
- 7. Java垃圾收集
- 8. C#垃圾收集
- 9. Java垃圾收集
- 10. WeakEvent垃圾收集
- 11. GWT垃圾收集
- 12. Renderscript和垃圾收集器
- 13. 垃圾收集器閃存
- 14. 垃圾收集器asp.net
- 15. Node.js的垃圾收集器
- 16. 垃圾收集器vs池
- 17. .NET垃圾收集器
- 18. 垃圾收集器Flash Player
- 19. Jruby,垃圾收集器,Redis
- 20. SpiderMonkey垃圾收集器
- 21. 垃圾收集YGCT和垃圾收集時間不斷上升
- 22. 如何配置.net垃圾收集器?
- 23. 如何禁用Java垃圾收集器?
- 24. 垃圾收集器如何識別根
- 25. 如何檢測使用哪個垃圾收集器?
- 26. 垃圾收集是由
- 27. 垃圾收集提交git
- 28. 從垃圾收集日誌
- 29. 垃圾收集緩存WeakMaps
- 30. SoftReference太早收集垃圾
您從Google搜索中瞭解到什麼? – AntonH
垃圾是除了你仍然從你的線索引用的東西之外的所有東西。 –
http://javabook.compuware.com/content/memory/how-garbage-collection-works.aspx – Brandon