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

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

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

    J2ME 技術(shù)的學(xué)習(xí)與實(shí)踐者

    [導(dǎo)入]OpenBaseMovil 的高速對(duì)象緩存機(jī)制


    網(wǎng)站: JavaEye  作者: iwinyeah  鏈接:http://iwinyeah.javaeye.com/blog/168482  發(fā)表時(shí)間: 2008年03月05日

    聲明:本文系JavaEye網(wǎng)站發(fā)布的原創(chuàng)博客文章,未經(jīng)作者書面許可,嚴(yán)禁任何網(wǎng)站轉(zhuǎn)載本文,否則必將追究法律責(zé)任!

    一個(gè)簡(jiǎn)單的高速對(duì)象緩存
    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;
    
        // ...部分省略
    
        // 構(gòu)建函數(shù),根據(jù)SIZE構(gòu)建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而要使用另一個(gè)引用?
            final Hashtable cache = this.cache;
    
            if( !cache.containsKey( key ) )
            {
                if( cache.size() == maxSize )
                {
                    discard(); // 如果Cache超過(guò)容量,按策略丟棄過(guò)時(shí)的對(duì)象
                }
                // 在Cache中加入這個(gè)對(duì)象
                cache.put( key, object );
                // 相應(yīng)也插入命中表第一位
                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;
        }
    
        // ...部分省略
    
        // 總是丟棄最后一個(gè)對(duì)象,
        private void discard()
        {
            final Object key = stamps.lastElement();
            stamps.removeElement( key );
            cache.remove( key );
        }
    
       // 每次從Cache取用某key對(duì)象,都將它插到第一位
        // 這樣不常用的對(duì)象將很快會(huì)被推至最后一位
        private void touch( final Object key )
        {
            stamps.removeElement( key );
            stamps.insertElementAt( key, 0 );
        }
    }
    

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


    JavaEye推薦




    文章來(lái)源:http://iwinyeah.javaeye.com/blog/168482

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日本视频免费高清一本18| 美女被吸屁股免费网站| 污污网站免费观看| 亚洲成人在线免费观看| 国产又黄又爽又刺激的免费网址 | jjizz全部免费看片| 亚洲日韩图片专区第1页| 久久这里只精品99re免费| 亚洲真人日本在线| 亚洲一区二区三区精品视频| 亚洲熟妇无码一区二区三区导航| 亚洲狠狠综合久久| 三级黄色在线免费观看| 成人毛片免费观看视频| 亚洲精品日韩一区二区小说| 日本一区免费电影| 丁香六月婷婷精品免费观看| 亚洲综合精品香蕉久久网| a毛片久久免费观看| 岛国岛国免费V片在线观看| 中文字幕精品亚洲无线码二区| 亚洲国产精品线观看不卡| 国产精品内射视频免费| 在线观看亚洲av每日更新| 99在线观看视频免费| 国产日本亚洲一区二区三区| 99视频在线观看免费| 精品无码一区二区三区亚洲桃色| 国产亚洲精品美女久久久久| 免费一级毛片正在播放| 两个人看的www高清免费观看| 国产乱子伦精品免费无码专区 | 99热在线免费播放| 亚洲一卡2卡4卡5卡6卡在线99| xvideos永久免费入口| 亚洲国产一区在线| www.黄色免费网站| 亚洲1区1区3区4区产品乱码芒果| 日本道免费精品一区二区| 亚洲成人网在线观看| 亚洲 自拍 另类小说综合图区|