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

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

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

    隨筆-12  評論-0  文章-1  trackbacks-0
    The main difference between SoftReference and WeakReference is that GC uses different algorithm to determine when to reclaim the objects they refer to, they can be used interchangablely in most situation.

           
            // soft reference
            o = new Object();
            ReferenceQueue
    <Object> sq = new ReferenceQueue<Object>();
            SoftReference
    <Object> sf = new SoftReference<Object>(o, sq);
            System.out.println(sf.get());
            o 
    = null;
            
            System.gc();
            r 
    = (Reference) sq.poll();
            
    if (r != null) {
                System.out.println(r.get());
            }

            // weak reference
            Object o = new Object();
            ReferenceQueue
    <Object> q = new ReferenceQueue<Object>();
            WeakReference
    <Object> w = new WeakReference<Object>(o, q);
            System.out.println(w.get());
            o 
    = null;
            System.gc();
            
            Reference r 
    = (Reference) q.poll();
            
    if (r != null) {
                System.out.println(r.get());
            }

            
    // phantom reference
            o = new Object();
            ReferenceQueue
    <Object> pq = new ReferenceQueue<Object>();
            PhantomReference
    <Object> pf = new PhantomReference<Object>(o, sq);
            System.out.println(pf.get());
            o 
    = null;
            
            System.gc();
            r 
    = (Reference) pq.poll();
            
    if (r != null) {
                System.out.println(r.get());
            }
           


    from http://www.ibm.com/developerworks/library/j-refs/

    The SoftReference class

    A typical use of the SoftReference class is for a memory-sensitive cache. The idea of a SoftReference is that you hold a reference to an object with the guarantee that all of your soft references will be cleared before the JVM reports an out-of-memory condition. The key point is that when the garbage collector runs, it may or may not free an object that is softly reachable. Whether the object is freed depends on the algorithm of the garbage collector as well as the amount of memory available while the collector is running.

    The WeakReference class

    A typical use of the WeakReference class is for canonicalized mappings. In addition, weak references are useful for objects that would otherwise live for a long time and are also inexpensive to re-create. The key point is that when the garbage collector runs, if it encounters a weakly reachable object, it will free the object the WeakReference refers to. Note, however, that it may take multiple runs of the garbage collector before it finds and frees a weakly reachable object.

    The PhantomReference class

    The PhantomReference class is useful only to track the impending collection of the referring object. As such, it can be used to perform pre-mortem cleanup operations. A PhantomReference must be used with the ReferenceQueue class. The ReferenceQueue is required because it serves as the mechanism of notification. When the garbage collector determines an object is phantomly reachable, the PhantomReference object is placed on its ReferenceQueue. The placing of the PhantomReference object on the ReferenceQueue is your notification that the object the PhantomReference object referred to has been finalized and is ready to be collected. This allows you to take action just prior to the object memory being reclaimed.

    posted on 2012-01-08 13:06 Sam Zheng 閱讀(126) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 免费国产在线观看| 国色精品卡一卡2卡3卡4卡免费| 国产伦精品一区二区三区免费下载| 亚洲熟妇无码久久精品| 日本在线看片免费人成视频1000 | 99精品视频在线视频免费观看| 亚洲日韩乱码中文无码蜜桃臀网站| 亚美影视免费在线观看| 亚洲精品美女久久777777| 男人都懂www深夜免费网站| 亚洲av无码一区二区三区不卡| 国产在线精品免费aaa片| 久久精品国产69国产精品亚洲| 97无码人妻福利免费公开在线视频 | 亚洲国产综合精品中文字幕| 曰批全过程免费视频观看免费软件| 国产一区二区免费在线| 72pao国产成视频永久免费| 亚洲国产精品特色大片观看完整版 | 久久综合亚洲色hezyo| 亚洲av麻豆aⅴ无码电影| 好久久免费视频高清| 亚洲女人影院想要爱| 精品久久免费视频| 国产精品1024在线永久免费| 亚洲av永久无码精品国产精品| 1000部拍拍拍18勿入免费凤凰福利| 亚洲人妖女同在线播放| 国产精品高清全国免费观看| 91av免费在线视频| 亚洲免费黄色网址| 亚洲国产精品13p| 久久ww精品w免费人成| 亚洲国产AV无码一区二区三区 | 国产无人区码卡二卡三卡免费 | 亚洲精品国产第一综合99久久| 全黄a免费一级毛片人人爱| a级在线免费观看| 亚洲永久网址在线观看| 亚洲尤码不卡AV麻豆| 动漫黄网站免费永久在线观看 |