java中垃圾收集_Java中的垃圾收集器是什么?
如果無法從任何活動線程或任何靜態引用訪問對象,則該對象將有資格進行垃圾收集或GC。
換句話說,如果一個對象的所有引用都是空的,那么它就有資格進行垃圾回收。循環依賴關系不算為引用,因此如果對象A引用對象B,對象B引用對象A,并且它們沒有任何其他活動引用,那么對象A和B都有資格進行垃圾收集。
用于垃圾收集的堆代-
中創建Java對象Heap和Heap為了在Java中進行垃圾收集,將其分為三個部分或幾代,它們稱為年輕一代(新一代)、終身(老)一代和珀姆地區堆里的。
新一代進一步分為三個部分,即伊甸園空間、幸存者1空間和幸存者2空間。當第一次在堆中創建對象時,它將在伊甸園空間內的新一代中創建,并在隨后的次要垃圾收集之后,如果一個對象幸存下來,則將其移動到幸存者1,然后在主要垃圾收集將該對象移動到老代或長輩.
燙發空間JavaHeap是JVM存儲有關類和方法、字符串池和類級詳細信息的元數據的地方。
有關更多信息,請參閱此處:垃圾收集
您不能強迫JVM運行垃圾收集,盡管您可以使用System.gc()或Runtime.gc()方法。
在java.lang.system中public?static?void?gc()?{
Runtime.getRuntime().gc();??}
在java.lang.Runtime中public?native?void?gc();??//?note?native??method
標記和掃描算法-
這是垃圾收集使用的最流行的算法之一。任何垃圾收集算法都必須執行兩個基本操作。第一,它應該能夠檢測所有不可訪問的對象,其次,它必須回收垃圾對象使用的堆空間,并使空間再次可供程序使用。
上述操作分兩個階段由Mark算法和掃描算法執行:標記相
掃描相位
在這里了解更多細節-標記和掃描算法
總結
以上是生活随笔為你收集整理的java中垃圾收集_Java中的垃圾收集器是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java date.getyear_为什
- 下一篇: java网络编程与分布式计算_Java_