<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ajie

    Java天下社區(qū) http://www.javatx.cn 歡迎大家上來交流Java技術(shù)
    posts - 4, comments - 8, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    軟引用(Soft  Reference)的主要特點(diǎn)是具有較強(qiáng)的引用功能。只有當(dāng)內(nèi)存不夠的時(shí)候才回收這類內(nèi)存,因此在內(nèi)存足夠的時(shí)候,他們通常不被回收。另外,這些引用對(duì)象還能保證在Java  拋出OutOfMemory異常之前,被設(shè)置為null。他可以用于實(shí)現(xiàn)一些常用資源的緩存,實(shí)現(xiàn)Cache的功能,保證最大限度的使用內(nèi)存而不引起OutOfMemory異常。

         下面是軟引用的實(shí)現(xiàn)代碼:
     
     1/**
     2 * 該類演示了Soft Reference的應(yīng)用
     3 * 版權(quán) 本文版權(quán)屬Java天下
     4 */

     5package cn.javatx;
     6
     7import java.lang.ref.SoftReference;
     8
     9/**
    10 * @author ajie
    11 */

    12
    13public class softReference {
    14
    15    /**
    16     * @param args
    17     */

    18    public static void main(String[] args) {
    19        // TODO Auto-generated method stub
    20        A a = new A();
    21        
    22        //使用a
    23        a.test();
    24
    25        //使用完了a,將它設(shè)置為soft引用類型,并且釋放強(qiáng)引用
    26        SoftReference sr = new SoftReference(a);
    27        a = null;
    28        
    29        //下次使用
    30        if (sr != null{
    31            a = (A)sr.get();
    32            a.test();
    33        }
     else {
    34            //GC由于低內(nèi)存,已釋放a,因此需要重新裝載
    35            a = new A();
    36            a.test();
    37            a = null;
    38            sr = new SoftReference(a);
    39        }

    40    }

    41
    42}

    43
    44class A {
    45    public void test() {
    46        System.out.println("Soft Reference test");
    47    }

    48}

    49


           軟引用技術(shù)的引進(jìn)使Java應(yīng)用可以更好的管理內(nèi)存,穩(wěn)定系統(tǒng),防止系統(tǒng)內(nèi)存溢出,避免系統(tǒng)崩潰。因此在處理一些占用內(nèi)存大而且聲明周期較長,但使用并不頻繁的對(duì)象時(shí)應(yīng)盡量應(yīng)用該技術(shù)。但事物總帶有兩面性的,有利也有弊,在某些時(shí)候?qū)浺玫氖褂脮?huì)降低應(yīng)用的運(yùn)行效率與性能,例如:應(yīng)用軟引用的對(duì)象的初始化過程較為耗時(shí),或者對(duì)象的狀態(tài)在程序的運(yùn)行過程中發(fā)生了變化,都會(huì)給重新創(chuàng)建對(duì)象與初始化對(duì)象帶來不同程度的麻煩,有些時(shí)候我們要權(quán)衡利弊擇時(shí)應(yīng)用。

    Java天下
    http://www.javatx.cn

    評(píng)論

    # re: Java內(nèi)存管理之軟引用(Soft Reference)   回復(fù)  更多評(píng)論   

    2007-06-18 16:22 by 史壽偉
    使用 if (sr != null) { 來判斷軟引用的對(duì)象是否可用是不對(duì)的。

    sr 始終是不為空的,可能為空的是 sf.get() 而不是 sf 本身。

    # re: Java內(nèi)存管理之軟引用(Soft Reference)   回復(fù)  更多評(píng)論   

    2007-11-01 10:43 by snoopy
    @史壽偉
    ding

    # re: Java內(nèi)存管理之軟引用(Soft Reference)   回復(fù)  更多評(píng)論   

    2008-12-19 13:48 by 1111
    感覺有問題..

    # re: Java內(nèi)存管理之軟引用(Soft Reference)   回復(fù)  更多評(píng)論   

    2010-06-11 16:47 by Rosen
    @史壽偉
    的確不需要再去判斷了。

    # re: Java內(nèi)存管理之軟引用(Soft Reference)   回復(fù)  更多評(píng)論   

    2011-11-02 17:02 by DLevin
    贊同,這個(gè)例子感覺不好。。。。@史壽偉

    # re: Java內(nèi)存管理之軟引用(Soft Reference)   回復(fù)  更多評(píng)論   

    2012-12-31 17:39 by geeksnail
    軟引用應(yīng)該用在頻繁使用的對(duì)象上吧,緩存不就是為了頻繁使用嗎?最后的總結(jié)是不是有點(diǎn)問題?

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 美美女高清毛片视频黄的一免费| 麻豆69堂免费视频| 大陆一级毛片免费视频观看| 美女啪啪网站又黄又免费| 亚洲色爱图小说专区| 久久国内免费视频| 美女视频免费看一区二区| 人人狠狠综合久久亚洲婷婷| www.黄色免费网站| 性生大片视频免费观看一级| 亚洲日本中文字幕区| 手机看片久久国产免费| 国内少妇偷人精品视频免费| 亚洲乱码国产乱码精华| 亚洲AV无码一区二区乱子伦| 日韩精品视频免费观看| 香港a毛片免费观看| 色天使亚洲综合一区二区| 久久精品亚洲综合| 国产男女猛烈无遮挡免费视频网站| 日本高清不卡aⅴ免费网站| 亚洲第一男人天堂| 亚洲国产综合精品中文第一区| 国产麻豆剧传媒精品国产免费| 免费精品一区二区三区第35| 美女露100%胸无遮挡免费观看 | 亚洲精品乱码久久久久久不卡| 91制片厂制作传媒免费版樱花| 男人扒开添女人下部免费视频| 亚洲av极品无码专区在线观看| 亚洲永久精品ww47| 暖暖免费高清日本中文| 午夜国产精品免费观看 | 又大又硬又粗又黄的视频免费看 | 日韩亚洲国产综合久久久| 在线看片免费人成视久网| 又大又硬又粗又黄的视频免费看| 亚洲人成网亚洲欧洲无码| 1区1区3区4区产品亚洲 | 色吊丝性永久免费看码| 亚洲欧美综合精品成人导航|