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

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

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

    ajie

    Java天下社區 http://www.javatx.cn 歡迎大家上來交流Java技術
    posts - 4, comments - 8, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Java內存管理之軟引用(Soft Reference)

    Posted on 2005-12-18 00:29 ajie 閱讀(10991) 評論(6)  編輯  收藏
    軟引用(Soft  Reference)的主要特點是具有較強的引用功能。只有當內存不夠的時候才回收這類內存,因此在內存足夠的時候,他們通常不被回收。另外,這些引用對象還能保證在Java  拋出OutOfMemory異常之前,被設置為null。他可以用于實現一些常用資源的緩存,實現Cache的功能,保證最大限度的使用內存而不引起OutOfMemory異常。

         下面是軟引用的實現代碼:
     
     1/**
     2 * 該類演示了Soft Reference的應用
     3 * 版權 本文版權屬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,將它設置為soft引用類型,并且釋放強引用
    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由于低內存,已釋放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


           軟引用技術的引進使Java應用可以更好的管理內存,穩定系統,防止系統內存溢出,避免系統崩潰。因此在處理一些占用內存大而且聲明周期較長,但使用并不頻繁的對象時應盡量應用該技術。但事物總帶有兩面性的,有利也有弊,在某些時候對軟引用的使用會降低應用的運行效率與性能,例如:應用軟引用的對象的初始化過程較為耗時,或者對象的狀態在程序的運行過程中發生了變化,都會給重新創建對象與初始化對象帶來不同程度的麻煩,有些時候我們要權衡利弊擇時應用。

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

    評論

    # re: Java內存管理之軟引用(Soft Reference)   回復  更多評論   

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

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

    # re: Java內存管理之軟引用(Soft Reference)   回復  更多評論   

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

    # re: Java內存管理之軟引用(Soft Reference)   回復  更多評論   

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

    # re: Java內存管理之軟引用(Soft Reference)   回復  更多評論   

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

    # re: Java內存管理之軟引用(Soft Reference)   回復  更多評論   

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

    # re: Java內存管理之軟引用(Soft Reference)   回復  更多評論   

    2012-12-31 17:39 by geeksnail
    軟引用應該用在頻繁使用的對象上吧,緩存不就是為了頻繁使用嗎?最后的總結是不是有點問題?

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲av无码无在线观看红杏| 国产亚洲精品国看不卡| 亚洲资源在线视频| 一级毛片在线免费观看| 亚洲国产精品久久久久网站 | 免费不卡中文字幕在线| 看亚洲a级一级毛片| 亚洲AⅤ优女AV综合久久久| 九九久久国产精品免费热6| 亚洲综合伊人久久大杳蕉| 国产特黄一级一片免费| 亚洲国产精品无码中文字| 一区二区三区观看免费中文视频在线播放| 亚洲成色WWW久久网站| 中文字幕免费高清视频| 国产精品亚洲片在线va| 国产青草视频免费观看97| 一级特黄a免费大片| 亚洲s色大片在线观看| 97在线线免费观看视频在线观看 | 国产在线播放线91免费| 亚洲电影一区二区三区| 黄页网站在线观看免费高清| 亚洲国产成人久久精品软件 | 亚洲日韩中文字幕无码一区| 日本免费人成视频播放| japanese色国产在线看免费| 亚洲av不卡一区二区三区| 久久精品免费全国观看国产| 免费看黄福利app导航看一下黄色录像| 中文字幕亚洲不卡在线亚瑟| 98精品全国免费观看视频| 亚洲av日韩av永久在线观看| 亚洲精品无码成人AAA片| 国产片AV片永久免费观看| 免费国产草莓视频在线观看黄| 久久精品国产亚洲AV果冻传媒| 久久WWW免费人成人片| 亚洲阿v天堂在线2017免费 | 国产精品国产亚洲区艳妇糸列短篇 | 全黄性性激高免费视频|