卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java web Java真的有引用傳遞嗎?

Java真的有引用傳遞嗎?Java只傳遞值,不傳遞引用。普通數(shù)據(jù)類型直接傳遞值,而對于引用類型,傳遞值是堆中被引用對象的內(nèi)存地址。java如何判斷對象是否還“存活”?1. 引用計數(shù)算法向?qū)ο筇砑右糜?/p>

Java真的有引用傳遞嗎?

Java只傳遞值,不傳遞引用。普通數(shù)據(jù)類型直接傳遞值,而對于引用類型,傳遞值是堆中被引用對象的內(nèi)存地址。

java如何判斷對象是否還“存活”?

1. 引用計數(shù)算法

向?qū)ο筇砑右糜嫈?shù)器。每當(dāng)有地方引用對象時,計數(shù)器將為+1;當(dāng)引用失敗時,計數(shù)器將為-1;當(dāng)計數(shù)器為0時,對象將不可能再被引用。

優(yōu)點:參考計數(shù)算法易于實現(xiàn),效率高。注:Java虛擬機中沒有引用計數(shù)算法來管理內(nèi)存,主要是因為它不能解決對象之間的相互循環(huán)引用問題。

例如:object obj=null;

public void t(){

test T1=new test();

test T2=new test();

T1。目標(biāo)=T2

T2。目標(biāo)=T1

}

2??蛇_性分析算法

基本思想是從這些起點向下搜索被稱為“GC根”的對象,并搜索對象通過的路徑(引用鏈)。如果根沒有被任何引用鏈連接,則對象不可用。如圖所示:

在Java中,可以用作GC根的對象包括:

①虛擬機堆棧中的引用對象。

②方法區(qū)域中靜態(tài)屬性引用的對象

方法區(qū)域中常量引用的對象

本地方法堆棧中JNI引用的對象。

3. 強引用:例如:object obj=new object(),只要強引用還在,垃圾收集器就永遠不會回收被引用的對象。

②軟引用:用于描述一些有用但不必要的對象。與軟引用關(guān)聯(lián)的對象將列在回收范圍中,以便在系統(tǒng)即將耗盡內(nèi)存之前進行二次回收。如果回收后內(nèi)存不足,將引發(fā)內(nèi)存溢出異常。

③弱引用:用于描述不必要的對象。它的強度比軟引用弱。與弱引用關(guān)聯(lián)的對象只能生存到下一次垃圾回收。

④虛擬參考:也稱為幻影參考或幻影參考,它是最弱的參考關(guān)系。對象是否有虛引用,根本不影響其生成時間,不可能通過虛引用獲得對象實例。