日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

簡述Java中的四種引用類型

瀏覽:38日期:2022-08-14 14:51:16
簡介

從JDK1.2版本開始,把對象的引用分為四種級別,從而使程序能更加靈活的控制對象的生命周期。這四種級別由高到低依次為:強引用、軟引用、弱引用和虛引用,下面分別介紹下這四種引用。

強引用

強引用是最常用的引用類型,如下所示,new Object()會創建一個Object對象并存儲在堆上,變量object存儲對該對象的強引用。

Object object = new Object();

強引用不會被垃圾回收,所以要想回收該對象,則應該將指向該對象的變量顯示設為null,這樣該對象就由強引用轉變為無引用了。

示例:

public class ReferenceDemo { public static void main(String[] args) throws IOException {//強引用不會被垃圾回收ReferenceDemo referenceDemo = new ReferenceDemo();//強引用轉變為無引用,無引用可被垃圾回收referenceDemo = null;//觸發垃圾回收System.gc();//阻塞主線程,等待垃圾回收線程執行System.in.read(); } //對象被回收之前調用 @Override protected void finalize() throws Throwable {super.finalize();System.out.println('-----finalize-----'); }}軟引用

軟引用是使用SoftReference創建的,在內存空間充足的情況下,軟引用不會被回收,而在內存空間不足虛擬機拋出OutOfMemoryError之前,軟引用將會被回收。

示例:

public class ReferenceDemo { public static void main(String[] args) throws InterruptedException {//創建ReferenceDemo對象的軟引用SoftReference<ReferenceDemo> softReference = new SoftReference<>(new ReferenceDemo());//觸發垃圾回收System.gc();//阻塞主線程,等待垃圾回收線程執行Thread.sleep(5000);//softReference.get()返回軟引用對象,如果對象已經被垃圾回收,則返回nullSystem.out.println(softReference.get());//創建25M的字節數組byte[] bytes = new byte[1024 * 1024 * 25];//內存已經不足,阻塞主線程,等待垃圾回收線程執行Thread.sleep(5000);//重新輸出軟引用對象System.out.println(softReference.get()); }}/* * 輸出結果: * com.buhe.demo.demos.reference.ReferenceDemo@76fb509a * null */

注意:示例運行前需要設置堆內存大小為30M(-Xmx30m -Xms30m)。

用途:軟引用可以用于對內存空間敏感的緩存,緩存的對象一直保存,直到內存空間不足而被回收。

弱引用

弱引用是使用WeakReference創建的,在垃圾回收線程執行過程中,只要找到了弱引用,不管內存空間是否足夠,弱引用對象都將被回收。由于垃圾回收線程是一個優先級很低的線程,因此不一定會很快發現那些只具有弱引用的對象。

示例:

public class ReferenceDemo { public static void main(String[] args) throws InterruptedException {//創建ReferenceDemo的弱引用WeakReference<ReferenceDemo> weakReference = new WeakReference<>(new ReferenceDemo());//weakReference.get()返回弱引用對象,如果對象已經被垃圾回收,則返回nullSystem.out.println(weakReference.get());//觸發垃圾回收System.gc();//阻塞主線程,等待垃圾回收線程執行Thread.sleep(3000);//重新輸出弱引用對象System.out.println(weakReference.get()); }}/* * 輸出結果: * com.buhe.demo.demos.reference.ReferenceDemo@76fb509a * null */

用途:弱引用也可以用于緩存,可以參考WeakHashMap類。

虛引用

虛引用是使用PhantomReference創建的,它是所以引用類型中最弱的。虛引用對象和沒有引用的對象相同,可以在任何時候被垃圾回收,并且虛引用必須要與引用隊列一起使用。

當垃圾回收線程回收一個虛引用對象時,它將在垃圾回收后銷毀該對象,并將PhantomReference添加到引用隊列中。

示例:

public class ReferenceDemo { public static void main(String[] args) throws InterruptedException {//創建引用隊列ReferenceQueue<Object> referenceQueue = new ReferenceQueue();//創建ReferenceDemo的虛引用PhantomReference<ReferenceDemo> phantomReference = new PhantomReference<>(new ReferenceDemo(), referenceQueue);//phantomReference.get()總是返回nullSystem.out.println('phantomReference.get():' + phantomReference.get());//輪詢此隊列,查看是否有可用的Reference對象,有則返回該對象,否則返回nullSystem.out.println('referenceQueue.poll():' + referenceQueue.poll());//觸發垃圾回收System.gc();//阻塞主線程,等待垃圾回收線程執行Thread.sleep(3000);System.out.println('------垃圾回收之后------');System.out.println('phantomReference.get():' + phantomReference.get());System.out.println('referenceQueue.poll():' + referenceQueue.poll()); }}/* * 輸出結果: * phantomReference.get():null * referenceQueue.poll():null * ------垃圾回收之后------ * phantomReference.get():null * referenceQueue.poll():java.lang.ref.PhantomReference@76fb509a */

用途:虛引用可以用于精確的檢測對象何時從內存中刪除,通過檢查引用隊列來判斷對象是否已經被回收。

以上就是簡述Java中的四種引用類型的詳細內容,更多關于Java 引用類型的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久777777毛茸茸| 国户精品久久久久久久久久久不卡 | 亚洲成人va| 日韩深夜视频| 在线天堂资源www在线污| 岛国av免费在线观看| 高潮一区二区| 亚洲天堂久久| 久久国产电影| 日韩午夜电影| 人人爽香蕉精品| 美女网站久久| 亚洲精品国产日韩| 久久国产尿小便嘘嘘| 国产精品久久久久久久久免费高清| 国产精品毛片aⅴ一区二区三区| 麻豆一区二区三| 日韩成人精品一区| 激情偷拍久久| 亚洲综合五月| 欧美永久精品| 国产精品成久久久久| 欧美日韩视频免费观看| 成人免费电影网址| 久热精品在线| 国产亚洲一区二区三区啪| 国产精品大片免费观看| 日韩欧美精品一区| 亚洲精品888| 日韩精品三区四区| 麻豆精品视频在线| 99久久99视频只有精品| 在线国产一区二区| 亚洲免费毛片| 成人在线观看免费视频| 欧美日韩在线二区| 无码日韩精品一区二区免费| 免费日韩一区二区三区| 成人午夜网址| 午夜久久一区| 国产日韩欧美中文在线| 私拍精品福利视频在线一区| 欧美专区一区二区三区| 国产毛片一区二区三区| 天堂√中文最新版在线| 天堂va蜜桃一区二区三区| 国产剧情一区| 久久激情婷婷| 国产色噜噜噜91在线精品| 久久免费黄色| 日韩区一区二| 肉色欧美久久久久久久免费看| 久久先锋影音| 国产高清视频一区二区| 国内精品福利| 国产精品天堂蜜av在线播放| 亚洲国产成人精品女人| 欧美精品导航| 夜夜嗨一区二区| 精品不卡一区| 午夜性色一区二区三区免费视频| 日韩欧美中文| 国产亚洲电影| 国产精品嫩草99av在线| 久久三级中文| 亚洲精品九九| 米奇777超碰欧美日韩亚洲| 国产高清日韩| 国产亚洲高清视频| 国产96在线亚洲| 奇米777国产一区国产二区| 久久久影院免费| 久久亚洲国产精品尤物| 亚洲精品影院在线观看| 亚洲不卡av不卡一区二区| 国产精品白浆| 亚洲bt欧美bt精品777| 欧美日韩一二三四| 成人午夜网址| 国产精品综合色区在线观看| 国产农村妇女精品一二区| av高清不卡| 国产极品一区| 一区二区三区网站| 免费黄色成人| 日韩88av| 欧美激情视频一区二区三区免费| 日韩精品一卡二卡三卡四卡无卡| 三级精品视频| av资源中文在线| 你懂的国产精品| 国产日韩欧美中文在线| 亚洲精品无播放器在线播放| 在线综合欧美| 亚洲成人一区| 99久久久久国产精品| 亚洲精品成人图区| 精品深夜福利视频| 国产日韩欧美在线播放不卡| 亚洲另类黄色| 免费欧美日韩| 国产一区二区高清| 欧美一区二区三区高清视频| 热三久草你在线| 成人午夜网址| 成人污污视频| 国产成人a视频高清在线观看| 国产精久久一区二区| 欧美日韩91| 欧美亚洲tv| 国产情侣久久| 国产精品hd| 国产精品va视频| 国产日韩欧美一区在线| 日本99精品| 欧美日韩亚洲一区三区| 欧美一级一区| 国产午夜久久av| 国产精品手机在线播放| 国产精品日本一区二区不卡视频| 国产日韩欧美一区二区三区| 欧美日韩亚洲三区| 国产精品一区毛片| 国产极品一区| 精品免费在线| 成人影视亚洲图片在线| 国产一区二区三区久久| 首页国产精品| 在线看片福利| 99成人在线视频| 亚洲欧美一区在线| 99成人在线| 亚洲一区二区日韩| 色8久久久久| 国产亚洲一卡2卡3卡4卡新区| 国产精品亚洲欧美日韩一区在线| 麻豆中文一区二区| 成人福利视频| 狠狠干综合网| 亚洲精品无吗| 国产精品sm| 日本在线高清| 久久国产日韩| 夜久久久久久| 天堂va在线高清一区| 国产免费av国片精品草莓男男| 国产精品久久久久久av公交车| 国内一区二区三区| 亚洲涩涩在线| 99riav1国产精品视频| 日韩一区二区三区在线看| 国产精品欧美大片| 日韩中文在线电影| 日韩视频一区| 国产欧美日韩精品高清二区综合区 | 视频一区在线视频| 91精品一区| 麻豆视频在线看| 激情欧美一区二区三区| 综合五月婷婷| 美女久久久精品| 四虎4545www国产精品| 亚洲欧美日韩国产综合精品二区 | 国产中文在线播放| 欧美日韩国产探花| 91亚洲精品在看在线观看高清| 精品视频一区二区三区四区五区| 999视频精品| 日韩精品成人| 久久精品青草| 91麻豆精品激情在线观看最新| 麻豆视频在线看| 蜜桃久久av一区| 精品视频一区二区三区在线观看 | 精品三区视频| 国产亚洲综合精品| 久久午夜影院| 国产精品美女久久久浪潮软件| 国产探花一区在线观看| 色天使综合视频| 日韩国产一二三区| 香蕉视频亚洲一级| 婷婷视频一区二区三区| 日韩欧美综合| 91麻豆精品激情在线观看最新 | 免费美女久久99| 欧美xxxx中国| 亚洲三级精品| 久久美女性网| 国产欧美日本| 亚洲一区中文| 成人在线视频中文字幕| 亚洲精品影视| 999久久久国产精品| 国产伦精品一区二区三区千人斩| 亚洲激情精品| 日韩国产综合| 国产三级精品三级在线观看国产| 国产精品91一区二区三区| 卡一精品卡二卡三网站乱码|