成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分析java對象的幾種引用(reference)

開發(fā) 后端
本文介紹的是java對象的引用的分析,希望對大家有幫助,一起來看吧!

java對象的引用reference分為有強引用,軟引用,弱引用,虛引用這幾種形式。

1、Soft Reference(軟引用)

指到的對象,即使沒有任何Direct Reference,也不會清除,一直到j(luò)vm內(nèi)存不足且沒有Direct Reference時候才會清除。

應(yīng)用場景:常用來設(shè)計緩存,不但可以將對象緩存起來,也不會容易造成內(nèi)存不足。

2、Weak Reference(弱引用)

GC一旦發(fā)現(xiàn)了弱引用關(guān)系進行就開始收集對象。

應(yīng)用場景:想查看某些對象信息,又不想影響GC對其的收集工作。

與GC的交互:

1.將referent置為null引用;

2.將堆中的目標對象設(shè)置為“finalizable(可結(jié)束的)”;

3.先執(zhí)行finalize(),釋放內(nèi)存,軟引用添加到RefernceQueue中。

ReferenceQueue在 soft renference和 weak reference中可以為null,但虛應(yīng)用中必須有!

3、PhantomReference(虛引用)

與GC的交互:

1.不將referent置為null引用;而是將堆中的目標對象設(shè)置為“finalizable(可結(jié)束的)”;

2.先軟引用添加到RefernceQueue中。然后收集對象,釋放內(nèi)存

附注:ReferenceQueue在 soft renference和 weak reference中可以為null,但虛引用中必須有!

4、抽象類Reference分析

java.lang.ref包中有四個類,他們的關(guān)系是PhantomReference,WeakReference,SoftReference繼承了抽象類Reference。Reference類中,有thread子類(ReferenceHandler),并在靜態(tài)區(qū)域中開啟,對pending字段進行實時的監(jiān)控。

pending是由jvm來賦值的,當Reference內(nèi)部的referent對象的可達狀態(tài)改變時,jvm會將Reference對象放入pending鏈表。

一旦relevent= null,垃圾收集時會標記WeakReference的referent為不可達get()返回null,并且通過賦值給pending ,觸發(fā)ReferenceHandler線程處理pending。

ReferenceHandler線程要做的是將pending對象enqueue,但默認我們所提供的queue,也就是從構(gòu)造函數(shù)傳入的是null,實際是使用了ReferenceQueue.NULL,Handler線程判斷queue為ReferenceQueue.NULL則不進行操作,只有非ReferenceQueue.NULL 的queue才會將Reference進行enqueue。

希望通過以上內(nèi)容的介紹,能夠給你帶來幫助。

責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-22 15:12:12

java

2024-08-14 13:24:24

2009-06-19 16:19:23

Java對象引用

2022-01-12 09:08:37

索引JavaReference對象

2009-12-03 09:59:20

JVM概念Java對象引用類型

2015-11-16 11:22:05

Java對象內(nèi)存分配

2021-10-18 15:50:49

Android強引用軟引用

2019-12-12 15:39:28

大數(shù)據(jù)IT互聯(lián)網(wǎng)

2011-06-30 09:25:22

軟件項目

2009-09-09 09:36:25

Linq對象引用

2009-08-17 14:48:44

Java參數(shù)傳遞機制

2011-09-22 13:49:44

XML基準測試

2011-05-17 10:33:44

IE6

2020-08-24 08:05:47

JavaScriptJavaScript 頁面

2023-12-25 09:30:41

Java垃圾回收

2024-05-20 08:58:13

Java引用類型垃圾回收器

2009-09-02 16:02:52

C#引用托管對象

2017-02-27 11:48:58

JVM源碼分析Java

2021-03-06 19:45:23

項目文件代碼

2010-01-20 18:24:51

C++CLI
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 在线免费小视频 | aa级毛片毛片免费观看久 | 国产在线精品一区二区三区 | 在线观看成人 | 亚洲国产精品99久久久久久久久 | 欧美日韩在线播放 | 成人免费一区二区三区牛牛 | 亚洲乱码一区二区三区在线观看 | 精品综合久久 | 欧美一区二区三区四区视频 | 国产精品一区二区av | 激情毛片 | 一区二区精品 | 国产一区二区三区四区三区四 | 午夜看看| 四虎影院在线免费观看 | 亚洲人的av | 伊人免费视频二 | 色婷婷一区| 亚洲高清视频在线观看 | 中文字幕亚洲欧美 | 青青操91| 超碰在线观看97 | 亚洲免费精品 | 999热精品视频 | 免费国产一区二区 | 亚洲 中文 欧美 日韩 在线观看 | 色小姐综合网 | 国产成人精品久久 | 久久大 | 成人亚洲片 | 国产综合久久 | 爱草在线 | 国产伦一区二区三区 | 国产成人麻豆免费观看 | 一区二区蜜桃 | 久久久久久亚洲国产精品 | 美女久久久久久久 | 九九亚洲 | 久久久久久久香蕉 | 日韩在线播放av |