日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SoftReference和WeakReference

發(fā)布時(shí)間:2023/12/10 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SoftReference和WeakReference 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?Java2增強(qiáng)了內(nèi)存管理功能, 增加了一個(gè)java.lang.ref包,其中定義了三種引用類。這三種引用類分別為SoftReference、WeakReference和PhantomReference.通過(guò)使用這些引用類,程序員可以在一定程度與GC進(jìn)行交互,以便改善GC的工作效率。這些引用類的引用強(qiáng)度介于可達(dá)對(duì)象和不可達(dá)對(duì)象之間。?
?
  創(chuàng)建一個(gè)引用對(duì)象也非常容易,例如如果你需要?jiǎng)?chuàng)建一個(gè)Soft Reference對(duì)象,那么首先創(chuàng)建一個(gè)對(duì)象,并采用普通引用方式(可達(dá)對(duì)象);然后再創(chuàng)建一個(gè)SoftReference引用該對(duì)象;最后將普通引用設(shè)置為null.通過(guò)這種方式,這個(gè)對(duì)象就只有一個(gè)Soft Reference引用。同時(shí),我們稱這個(gè)對(duì)象為Soft Reference 對(duì)象。?
?
  Soft Reference的主要特點(diǎn)是據(jù)有較強(qiáng)的引用功能。只有當(dāng)內(nèi)存不夠的時(shí)候,才進(jìn)行回收這類內(nèi)存,因此在內(nèi)存足夠的時(shí)候,它們通常不被回收。另外,這些引用對(duì)象還能保證在Java拋出OutOfMemory 異常之前,被設(shè)置為null.它可以用于實(shí)現(xiàn)一些常用圖片的緩存,實(shí)現(xiàn)Cache的功能,保證最大限度的使用內(nèi)存而不引起OutOfMemory.以下給出這種引用類型的使用偽代碼;?
?
//申請(qǐng)一個(gè)圖像對(duì)象?
  Image p_w_picpath=new Image();//創(chuàng)建Image對(duì)象?
  …?
  //使用 p_w_picpath?
  …?
  //使用完了p_w_picpath,將它設(shè)置為soft 引用類型,并且釋放強(qiáng)引用;?
  SoftReference sr=new SoftReference(p_w_picpath);?
  p_w_picpath=null;?
   …?
   //下次使用時(shí)?
   if (sr!=null) p_w_picpath=sr.get();?
   else{?
   //由于GC由于低內(nèi)存,已釋放p_w_picpath,因此需要重新裝載;?
   p_w_picpath=new Image();?
  sr=new SoftReference(p_w_picpath);?
  }?
?
???  Weak引用對(duì)象與Soft引用對(duì)象的最大不同就在于:GC在進(jìn)行回收時(shí),需要通過(guò)算法檢查是否回收Soft引用對(duì)象,而對(duì)于Weak引用對(duì)象,GC總是進(jìn)行回收。Weak引用對(duì)象更容易、更快被GC回收。雖然,GC在運(yùn)行時(shí)一定回收Weak對(duì)象,但是復(fù)雜關(guān)系的Weak對(duì)象群常常需要好幾次GC的運(yùn)行才能完成。Weak引用對(duì)象常常用于Map結(jié)構(gòu)中,引用數(shù)據(jù)量較大的對(duì)象,一旦該對(duì)象的強(qiáng)引用為null時(shí),GC能夠快速地回收該對(duì)象空間。?

轉(zhuǎn)載于:https://blog.51cto.com/jianshusoft/695169

總結(jié)

以上是生活随笔為你收集整理的SoftReference和WeakReference的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。