天天看點

初始化與清理複習筆記-垃圾回收器

初始化與清理複習筆記-垃圾回收器

  • 在java虛拟機中,堆的實作像是隊列一樣,是以垃圾回收器對于提高對象的建立速度有着明顯的效果。
  • 其他系統中的垃圾回收機制-引用計數:引用計數是一種簡單但是速度很慢的垃圾回收技術,每個對象含有一個引用計數器,當有引用連接配接至引用計數器,引用計數加一,當引用離開作用域或者被置為null,引用計數減一。缺陷:不能解決“互動自引用的對象組”問題。
  • 垃圾回收器依據的思想:對任何“活”的對象一定能追溯其存活在堆棧或靜态存儲區之中的引用。并由此,周遊堆棧和靜态存儲區之中的引用,找到所有“活”的對象,然後找到這些對象包含的所有引用,這種方式不光能找到所有“活”的對象,還能解決互動自引用的對象組”的問題。
  • 停止-複制:程式穩定之前的操作:将所有“活”的對象從目前堆複制到一個新的堆。這個堆空間連續。
  • 标記-清掃:程式穩定之後(隻會産生少量垃圾):周遊所有引用,标記所有“活”的對象,沒有被标記的對象就會被清理,這樣得到的是一些不連續的空間需要得到連續的空間就需要重新整理剩下的對象。
  • 即時編譯技術JIT:通過惰性評估,隻在必要時才編譯代碼。

繼續閱讀