1.引用計(jì)數(shù)法(Reference Counting Collector)
創(chuàng)新互聯(lián)是專業(yè)的通遼網(wǎng)站建設(shè)公司,通遼接單;提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行通遼網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!1.1算法分析
引用計(jì)數(shù)是垃圾收集器中的早期策略。在這種方法中,堆中每個(gè)對象實(shí)例都有一個(gè)引用計(jì)數(shù)。當(dāng)一個(gè)對象被創(chuàng)建時(shí),且將該對象實(shí)例分配給一個(gè)變量,該變量計(jì)數(shù)設(shè)置為1。當(dāng)任何其它變量被賦值為這個(gè)對象的引用時(shí),計(jì)數(shù)加1(a = b,則b引用的對象實(shí)例的計(jì)數(shù)器+1),但當(dāng)一個(gè)對象實(shí)例的某個(gè)引用超過了生命周期或者被設(shè)置為一個(gè)新值時(shí),對象實(shí)例的引用計(jì)數(shù)器減1。任何引用計(jì)數(shù)器為0的對象實(shí)例可以被當(dāng)作垃圾收集。當(dāng)一個(gè)對象實(shí)例被垃圾收集時(shí),它引用的任何對象實(shí)例的引用計(jì)數(shù)器減1。
1.2優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
引用計(jì)數(shù)收集器可以很快的執(zhí)行,交織在程序運(yùn)行中。對程序需要不被長時(shí)間打斷的實(shí)時(shí)環(huán)境比較有利。
缺點(diǎn):
無法檢測出循環(huán)引用。如父對象有一個(gè)對子對象的引用,子對象反過來引用父對象。這樣,他們的引用計(jì)數(shù)永遠(yuǎn)不可能為0.
1.3引用計(jì)數(shù)算法無法解決循環(huán)引用問題,例如:
public class Main { public static void main(String[] args) { MyObject object1 = new MyObject(); MyObject object2 = new MyObject(); object1.object = object2; object2.object = object1; object1 = null; object2 = null; } }