第九章:内存管理
引用計數:垃圾回收機制的依據
a.變量的值被引用,該值的引用計數 +1b.變量的值被解綁,該值的引用計數 -1
c.引用計數為0時就會被垃圾回收機制回收
?
引用計數會出現循環引用問題:相互引用無法釋放
a.兩個變量引用其值,值之間又相互引用b.變量與值進行解綁,但是值之間還存在相互引用,導致值得引用計數永遠 >0
c.引用計數>0的值永遠無法被引用計數機制回收,導致內存泄露
?
標記清除:解決循環引用問題
所有線程能訪問到的棧區變量,稱之為 gc roots對象a.所有gc roots對象可以直接或間接訪問到的變量值,都會被 標記機制 標記為存活狀態
b.將所有存活狀態的值形成新的拷貝,變量完成重新引用
c.清除機制 會將之前所有產生的值都進行回收
?
分代回收:采用的還是引用計數來回收,是對該機制的一個優化措施
a.剛產生的變量值放在新生代中高頻率檢查,如果引用計數為0,就是采用引用計數機制回收,長期存活的變量值經過多次檢查后會提高分代b.分帶又高,檢查頻率越低,且還能繼續提高一直存活的變量值的分帶,從而來提高整體垃圾回收的效率
?
?
轉載于:https://www.cnblogs.com/haojunliancheng/p/10758417.html
總結
- 上一篇: 02-再探MySQL数据库
- 下一篇: 2.12 Hivet中order by,