java简述垃圾回收原理及算法_Java垃圾回收原理和算法
生活随笔
收集整理的這篇文章主要介紹了
java简述垃圾回收原理及算法_Java垃圾回收原理和算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
·內存管理
Java的內存管理很大程度指的就是對象的管理,其中包括對象空間的分配和釋放。
對象空間的分配:使用new關鍵字創建對象即可
對象空間的釋放:將對象賦值null即可。垃圾回收器將負責回收所有”不可達”對象的內存空間。
·垃圾回收過程
任何一種垃圾回收算法一般要做兩件基本事情:
1. 發現無用的對象
2. 回收無用對象占用的內存空間。
垃圾回收機制保證可以將“無用的對象”進行回收。無用的對象指的就是沒有任何變量引用該對象。Java的垃圾回收器通過相關算法發現無用對象,并進行清除和整理。
·垃圾回收相關算法
1. 引用計數法
堆中每個對象都有一個引用計數。被引用一次,計數加1. 被引用變量值變為null,則計數減1,直到計數為0,則表示變成無用對象。優點是算法簡單,缺點是“循環引用的無用對象”無法別識別。
循環引用示例
s1和s2互相引用對方,導致他們引用計數不為0,但是實際已經無用,但無法被識別。
2. 引用可達法(根搜索算法)
程序把所有的引用關系看作一張圖,從一個節點GC ROOT開始,尋找對應的引用節點,找到這個節點以后,繼續尋找這個節點的引用節點,當所有的引用節點尋找完畢之后,剩余的節點則被認為是沒有被引用到的節點,即無用的節點。
總結
以上是生活随笔為你收集整理的java简述垃圾回收原理及算法_Java垃圾回收原理和算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java写入磁盘阵列_月光软件站 - 编
- 下一篇: 并发编程(十六)——java7 深入并发