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

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

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

    J2ME 技術的學習與實踐者

    [導入]OpenBaseMovil 的高速對象緩存機制


    網站: JavaEye  作者: iwinyeah  鏈接:http://iwinyeah.javaeye.com/blog/168482  發表時間: 2008年03月05日

    聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!

    一個簡單的高速對象緩存
    public class SimpleCache
    {
        private static long wideHits;
        private static long wideMisses;
    
        private Hashtable   cache;
        private Vector      stamps;
        private int         maxSize;
        private long        hits;
        private long        misses;
    
        // ...部分省略
    
        // 構建函數,根據SIZE構建Cache和命中表
        public SimpleCache( final int size )
        {
            this.maxSize = size;
            cache = new Hashtable( size );
            stamps = new Vector( size );
        }
    
        // ...部分省略
    
        public void add( final Object key, final Object object )
        {
            // 為什么不直接使用cache而要使用另一個引用?
            final Hashtable cache = this.cache;
    
            if( !cache.containsKey( key ) )
            {
                if( cache.size() == maxSize )
                {
                    discard(); // 如果Cache超過容量,按策略丟棄過時的對象
                }
                // 在Cache中加入這個對象
                cache.put( key, object );
                // 相應也插入命中表第一位
                stamps.insertElementAt( key, 0 );
            }
            else
            {
                // 更新Cache
                cache.put( key, object );
                // 也算命中一次
                touch( key );
            }
        }
    
        // ...部分省略
    
        public synchronized Object get( final Object key )
        {
            final Object o = cache.get( key );
            if( o != null )
            {
                hits++;
                wideHits++;
                // 算命中一次
                touch( key );
            }
            else
            {
                misses++;
                wideMisses++;
            }
            return o;
        }
    
        // ...部分省略
    
        // 總是丟棄最后一個對象,
        private void discard()
        {
            final Object key = stamps.lastElement();
            stamps.removeElement( key );
            cache.remove( key );
        }
    
       // 每次從Cache取用某key對象,都將它插到第一位
        // 這樣不常用的對象將很快會被推至最后一位
        private void touch( final Object key )
        {
            stamps.removeElement( key );
            stamps.insertElementAt( key, 0 );
        }
    }
    

    本文的討論也很精彩,瀏覽討論>>


    JavaEye推薦




    文章來源:http://iwinyeah.javaeye.com/blog/168482

    posted on 2008-03-05 22:29 iwinyeah 閱讀(66) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 国产精品亚洲综合| 亚洲av无码一区二区三区四区| 最近中文字幕完整免费视频ww| 中文字字幕在线高清免费电影| 免费观看久久精彩视频| 亚洲日韩中文在线精品第一| 美女被艹免费视频| 中文字幕亚洲无线码a| 中文字幕在线免费视频| 亚洲AV无码一区二区二三区入口 | 狼群影院在线观看免费观看直播| 无码人妻一区二区三区免费手机| 国产99视频免费精品是看6| 青青青亚洲精品国产| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲色偷拍另类无码专区| 一级毛片正片免费视频手机看 | 久久精品国产亚洲Aⅴ蜜臀色欲 | 在线观看亚洲AV日韩AV| 女人18特级一级毛片免费视频| 亚洲一区二区三区自拍公司| 免费观看一区二区三区| 久久国产亚洲观看| 在线看免费观看AV深夜影院| 亚洲人成网站999久久久综合| 久久免费线看线看| 亚洲成人福利在线| 在线观看免费国产视频| 精品免费久久久久国产一区 | 成人黄软件网18免费下载成人黄18免费视频| 亚洲 自拍 另类小说综合图区| 亚洲高清免费在线观看| 免费无码又爽又刺激高潮 | 亚洲精品第一综合99久久| 凹凸精品视频分类国产品免费| 亚洲国产精品lv| 免费无码黄网站在线观看| 一级毛片高清免费播放| 亚洲成人午夜电影| 又黄又爽的视频免费看| 最近免费中文字幕大全免费版视频|