java中緩衝的原理

來源:互聯網
上載者:User

在java中經常用到緩衝,在SSh架構中也會用到一級緩衝和二級緩衝,到底緩衝是怎麼實現的呢?

簡單講就是,如果某些資源或者資料會被頻繁的使用,而這些資源或資料存放區在系統外部,比如資料庫、硬碟檔案等,那麼每次操作這些資料的時候都從資料庫或者硬碟上去擷取,速度會很慢,會造成效能問題。
一個簡單的解決方案就是:把這些資料緩衝到記憶體裡面,每次操作的時候,先到記憶體裡面找,看有沒有這些資料,如果有,那麼就直接使用,如果沒有那麼就擷取它,並設定到緩衝中,下一次訪問的時候就可以直接從記憶體中擷取了。從而節省大量的時間,當然,緩衝是一種典型的空間換時間的方案。

在Java中最常見的一種實現緩衝的方式就是使用Map, 基本的步驟是:
• 先到緩衝裡面尋找,看看是否存在需要使用的資料
• 如果沒有找到,那麼就建立一個滿足要求的資料,然後把這個資料設定回到緩衝中,以備下次使用
• 如果找到了相應的資料,或者是建立了相應的資料,那就直接使用這個資料。

 

/*** Java中緩衝的基本實現樣本*/public class JavaCache {/*** 快取資料的容器,定義成Map是方便訪問,直接根據Key就可以擷取Value了* key選用String是為了簡單,方便示範*/private Map<String,Object> map = new HashMap<String,Object>();/*** 從緩衝中擷取值* @param key 設定時候的key值* @return key對應的Value值*/public Object getValue(String key){//先從緩衝裡面取值Object obj = map.get(key);//判斷緩衝裡面是否有值if(obj == null){//如果沒有,那麼就去擷取相應的資料,比如讀取資料庫或者檔案//這裡只是示範,所以直接寫個假的值obj = key+",value";//把擷取的值設定回到緩衝裡面map.put(key, obj);}//如果有值了,就直接返回使用return obj;}}

 

這裡只是緩衝的基本實現,還有很多功能都沒有考慮,比如緩衝的清除,緩衝的同步等等。當然,Java的
緩衝還有很多實現方式,也是非常複雜的,現在有很多專業的緩衝架構,更多緩衝的知識,這裡就不再去討論
了。

下面用單例模式實現緩衝:

/*** 使用緩衝來類比實現單例*/public class Singleton {/*** 定義一個預設的key值,用來標識在緩衝中的存放*/private final static String DEFAULT_KEY = "One";/*** 緩衝執行個體的容器*/private static Map<String,Singleton> map =new HashMap<String,Singleton>();/*** 私人化構造方法*/private Singleton(){//}public static Singleton getInstance(){//先從緩衝中擷取Singleton instance = (Singleton)map.get(DEFAULT_KEY);//如果沒有,就建立一個,然後設定回緩衝中if(instance==null){instance = new Singleton();map.put(DEFAULT_KEY, instance);}//如果有就直接使用return instance;}}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.