<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无码一区二区三区天堂 | 99re免费99re在线视频手机版| 国产va在线观看免费| 日本免费人成在线网站| 在线a毛片免费视频观看| 不卡一卡二卡三亚洲| 亚洲综合一区二区| 特级毛片A级毛片免费播放| 2021在线观看视频精品免费| 又粗又黄又猛又爽大片免费| 亚洲国产高清美女在线观看| 国产免费牲交视频免费播放| 国产在线国偷精品产拍免费| 亚洲精品午夜无码电影网| 亚洲欧美不卡高清在线| 无码人妻一区二区三区免费看| 亚洲精品无码日韩国产不卡?V| 亚洲H在线播放在线观看H| a级精品九九九大片免费看| 亚洲人成7777| 怡红院免费的全部视频| 亚洲国产精品一区二区第一页| 国产精品亚洲精品久久精品 | 久久亚洲国产成人影院| 99久热只有精品视频免费观看17| 麻豆亚洲av熟女国产一区二| 99精品全国免费观看视频..| 亚洲免费视频网站| 十八禁在线观看视频播放免费| 免费**毛片在线播放直播 | 男人j进入女人j内部免费网站| 亚洲黄色免费观看| 全免费a级毛片免费看不卡| 亚洲三级电影网址| 天天摸天天操免费播放小视频| 香蕉国产在线观看免费| 波多野结衣中文一区二区免费| 国精产品一区一区三区免费视频 | **aaaaa毛片免费同男同女| 亚洲国产av玩弄放荡人妇| 午夜dj免费在线观看|