成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

簡述Java中的四種引用類型

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

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

強(qiáng)引用

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

Object object = new Object();

強(qiáng)引用不會被垃圾回收,所以要想回收該對象,則應(yīng)該將指向該對象的變量顯示設(shè)為null,這樣該對象就由強(qiáng)引用轉(zhuǎn)變?yōu)闊o引用了。

示例:

public class ReferenceDemo { public static void main(String[] args) throws IOException {//強(qiáng)引用不會被垃圾回收ReferenceDemo referenceDemo = new ReferenceDemo();//強(qiáng)引用轉(zhuǎn)變?yōu)闊o引用,無引用可被垃圾回收referenceDemo = null;//觸發(fā)垃圾回收System.gc();//阻塞主線程,等待垃圾回收線程執(zhí)行System.in.read(); } //對象被回收之前調(diào)用 @Override protected void finalize() throws Throwable {super.finalize();System.out.println('-----finalize-----'); }}軟引用

軟引用是使用SoftReference創(chuàng)建的,在內(nèi)存空間充足的情況下,軟引用不會被回收,而在內(nèi)存空間不足虛擬機(jī)拋出OutOfMemoryError之前,軟引用將會被回收。

示例:

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

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

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

弱引用

弱引用是使用WeakReference創(chuàng)建的,在垃圾回收線程執(zhí)行過程中,只要找到了弱引用,不管內(nèi)存空間是否足夠,弱引用對象都將被回收。由于垃圾回收線程是一個優(yōu)先級很低的線程,因此不一定會很快發(fā)現(xiàn)那些只具有弱引用的對象。

示例:

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

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

虛引用

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

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

示例:

public class ReferenceDemo { public static void main(String[] args) throws InterruptedException {//創(chuàng)建引用隊列ReferenceQueue<Object> referenceQueue = new ReferenceQueue();//創(chuàng)建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());//觸發(fā)垃圾回收System.gc();//阻塞主線程,等待垃圾回收線程執(zhí)行Thread.sleep(3000);System.out.println('------垃圾回收之后------');System.out.println('phantomReference.get():' + phantomReference.get());System.out.println('referenceQueue.poll():' + referenceQueue.poll()); }}/* * 輸出結(jié)果: * phantomReference.get():null * referenceQueue.poll():null * ------垃圾回收之后------ * phantomReference.get():null * referenceQueue.poll():java.lang.ref.PhantomReference@76fb509a */

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

以上就是簡述Java中的四種引用類型的詳細(xì)內(nèi)容,更多關(guān)于Java 引用類型的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲激情图片一区| 91福利视频网站| 久久精品日产第一区二区| 国产精品成人在线观看| 91在线播放网址| 精品美女被调教视频大全网站| 国产一区二区日韩精品| 欧美色精品天天在线观看视频| 视频一区二区三区中文字幕| 久久精品亚洲| 日韩黄色小视频| 久久综合九色综合欧美狠狠| 婷婷综合另类小说色区| 久久一综合视频| 亚洲第一在线综合网站| 欧美综合二区| 日韩国产在线观看| 在线欧美福利| 亚洲欧美怡红院| 91久久精品www人人做人人爽| 国产欧美日韩综合| 国产成人精品一区二区三区四区| 欧美人狂配大交3d怪物一区| 国产精一品亚洲二区在线视频| 91麻豆精品国产91久久久资源速度| 韩国三级中文字幕hd久久精品| 欧美日韩一本到| 国产一区亚洲一区| 欧美精品1区2区| 国产成人在线观看| 久久嫩草精品久久久精品| 91香蕉视频黄| 国产欧美久久久精品影院| 欧美日韩一区二区三区四区在线观看| 国产精品免费视频观看| 亚洲国产高清一区二区三区| 亚洲一区二区在线播放相泽| 免费亚洲一区二区| 麻豆久久久久久久| 日韩欧美激情四射| 欧美黄色aaaa| 亚洲精品视频在线观看网站| 先锋影音久久久| 美美哒免费高清在线观看视频一区二区 | 色综合中文字幕国产| 国产精品欧美极品| 亚洲在线观看| 看电影不卡的网站| 日韩一二三区不卡| 欧美jjzz| 一区二区三区视频在线看| 久久午夜电影| 国产成人免费在线观看| 久久久久久久久久久99999| 狠狠干成人综合网| 丝袜诱惑制服诱惑色一区在线观看| 欧美喷潮久久久xxxxx| 9久草视频在线视频精品| 中文在线一区二区| 国产欧美日韩综合一区在线观看 | 亚洲夂夂婷婷色拍ww47| 欧美日韩一区精品| caoporen国产精品视频| 日韩伦理av电影| 亚洲视频大全| 久久99蜜桃精品| 国产亚洲精品中文字幕| 母乳一区在线观看| 成人网在线免费视频| 国产精品久久777777| 久久精品九九| 国产91精品入口| 国产精品久久久久久久久久久免费看| 久久riav二区三区| av一区二区不卡| 一区二区三区高清不卡| 欧美日韩三级一区| 国产精品v日韩精品v欧美精品网站| 无码av免费一区二区三区试看| 日韩午夜激情免费电影| 亚洲人成人一区二区三区| 久久国产福利国产秒拍| 中文一区一区三区高中清不卡| 一本到一区二区三区| 成人精品免费网站| 亚洲综合色区另类av| 欧美一区二区三区影视| 亚洲精品在线视频观看| 韩国女主播一区| 国产精品免费视频观看| 欧美日韩不卡在线| 在线观看一区视频| 国内外成人在线视频| 国产精品久久久久久久久图文区| 欧美日精品一区视频| 在线精品亚洲| 国产乱子伦视频一区二区三区| 亚洲精选一二三| 欧美一级日韩一级| 亚洲一区不卡| 波多野结衣的一区二区三区| 首页欧美精品中文字幕| 欧美激情综合五月色丁香小说| 在线观看日韩毛片| 欧美日韩亚洲一区| 极品少妇一区二区三区精品视频| 一区二区中文字幕在线| 欧美一区二区三区免费大片| 国产视频亚洲| 99精品黄色片免费大全| 日本不卡一区二区三区 | 精品午夜一区二区三区在线观看| 综合久久综合久久| 91久久免费观看| 欧美午夜免费| 国产成人啪免费观看软件 | 狠狠狠色丁香婷婷综合激情 | 国产一区二区在线视频| 一区二区三区电影在线播| 26uuu色噜噜精品一区二区| 色噜噜狠狠色综合中国| 在线不卡亚洲| 成人激情黄色小说| 丝袜脚交一区二区| 中国av一区二区三区| 欧美一级欧美三级| 在线精品视频一区二区| 国产欧美一区二区色老头| k8久久久一区二区三区| 免费观看日韩电影| 亚洲综合999| 国产精品久久久久久亚洲毛片| 欧美成人猛片aaaaaaa| 欧美色涩在线第一页| 国产精品一区二区三区四区五区| 欧美大片专区| 不卡一区二区中文字幕| 韩国视频一区二区| 天天亚洲美女在线视频| 日韩美女精品在线| 欧美国产丝袜视频| 精品成人私密视频| 欧美一区二区福利在线| 欧美日韩一级黄| 色婷婷综合久久久久中文一区二区| 在线一区亚洲| 在线观看不卡| 欧美天天在线| 91麻豆自制传媒国产之光| 国产凹凸在线观看一区二区| 激情五月婷婷综合| 麻豆91精品91久久久的内涵| 亚洲成人自拍网| 17c精品麻豆一区二区免费| 久久久综合九色合综国产精品| 日韩亚洲欧美成人一区| 欧美二区在线观看| 欧美日韩国产一级| 欧美日韩成人在线一区| 欧美人与性动xxxx| 欧美精品精品一区| 欧美顶级少妇做爰| 老司机免费视频久久| 午夜在线视频观看日韩17c| 99香蕉国产精品偷在线观看| 亚洲动漫精品| 亚洲国产日韩欧美| 亚洲国产一区二区三区高清| 国产精品vip| 在线成人欧美| 亚洲精品在线视频观看| 国产欧美69| 久久本道综合色狠狠五月| 蘑菇福利视频一区播放| 免费试看一区| 久久在线91| 在线国产电影不卡| 欧美亚州韩日在线看免费版国语版| 欧美色综合网站| 在线综合+亚洲+欧美中文字幕| 欧美一区二区在线不卡| 精品美女被调教视频大全网站| 欧美精品一区二区三区视频| 欧美精品一区视频| 国产香蕉久久精品综合网| 国产欧美日韩卡一| ...av二区三区久久精品| 亚洲精品成人悠悠色影视| 亚洲成人动漫一区| 久久精品国产免费| 国产精品系列在线播放| 成人高清在线视频| 欧美一区精品| 亚洲激情精品| 久久午夜视频| 欧美精品高清视频| 久久免费电影网| 国产精品精品国产色婷婷| 亚洲狠狠丁香婷婷综合久久久| 亚洲v中文字幕|