キャッシングとは、プログラムまたはシステムが呼び出されることが多いオブジェクトがメモリに保存され、新しい複製インスタンスを作成することなく、1回使用すると迅速に呼び出すことができることを意味します。そうすることで、システムのオーバーヘッドを削減し、システムの効率を向上させることができます。
キャッシュは、主に2つのカテゴリに分割できます。
1.ファイルキャッシュを介して、名前が示すように、ファイルキャッシュとは、XML形式、シリアル化されたファイルデータ形式、またはその他のファイル形式であるかどうかにかかわらず、ディスクにデータを保存することを指します。
2。メモリキャッシュ、つまりクラスに静的マップを実装し、このマップの定期的な追加、削除、および検索を実行します。
Java.util。*をインポートします。 //キャッシュの管理//単一インスタンスコンストラクターprivate cachemanager(){super(); } // booleanキャッシュを取得public static boolean getImpleflag(string key){try {return(boolean)cachemap.get(key); } catch(nullpointerexception e){return false; }} public static long getServerstartdt(string key){try {return(long)cachemap.get(key); } catch(Exception ex){return 0; }} //ブールキャッシュを設定しますpublic synchronized static boolean setsimpleflag(string key、boolean flag){if(flag && getsimpleflag(key)){// trueの場合、上書きはfalseを返すことができません; } else {cachemap.put(key、flag); trueを返します。 }} public synchronized static boolean setsimpleflag(string key、long serverbegrundt){if(cachemap.get(key)== null){cachemap.put(key、serverbegrundt); trueを返します。 } else {return false; }} //キャッシュを取得します。 SYNCHRONIZED STATICメソッドPrivate Synchronized Static Cache GetCache(String Key){return(cache)cachemap.get(key); } //キャッシュがあるかどうかを判断プライベート同期Static Boolean Hascache(string key){return cachemap.containskey(key); } //すべてのキャッシュをクリアしますpublic synchronized static void clearall(){cachemap.clear(); } //特定のタイプのキャッシュをクリアし、そのキーと着信タイプがパブリック同期の静的void clearall(string type)に一致するかどうかを判断します{iterator i = cachemap.entryset()。iterator();文字列キー; arrayList arr = new ArrayList(); try {while(i.hasnext()){java.util.map.entry entry =(java.util.map.entry)i.next(); key =(string)entry.getKey(); if(key.startswith(type)){//一致する場合は、arr.add(key)を削除します。 }} for(int k = 0; k <arr.size(); k ++){clearonly(arr.get(k)); }} catch(Exception ex){ex.printstacktrace(); }} //指定されたキャッシュをクリアパブリック同期静的void clearonly(string key){cachemap.remove(key); } //キャッシュをロードしますパブリックシンクロナイズされた静的void putcache(string key、cache obj){cachemap.put(key、obj); } //キャッシュ情報の取得public static cache getCacheInfo(String key){if(hascache(key)){cache cache = getCache(key); if(cacheexpired(cache)){//呼び出して、メソッドcache.setexpired(true)を終了するかどうかを判断します。 }キャッシュを返します。 } else nullを返します。 } //キャッシュ情報のロードpublic static void putcacheinfo(string key、cache obj、long dt、boolean expired){cache cache = new Cache(); cache.setKey(key); cache.settimeout(dt + system.currenttimemillis()); // Cache Cache.SetValue(OBJ)を更新する時間を設定します。 cache.setexpired(expired); //デフォルトでキャッシュがロードされると、終了ステータスはfalse cachemap.put(key、cache)です。 } //ロードキャッシュ情報メソッドの書き換えpublic void putcacheinfo(string key、cache obj、long dt){cache cache = new Cache(); cache.setKey(key); cache.settimeout(dt+system.currenttimemillis()); cache.setValue(OBJ); cache.setexpired(false); cachemap.put(key、cache); } //キャッシュがpublic static boolean cacheexpired(キャッシュキャッシュ)を終了するかどうかを判断{if(null == cache){//着信キャッシュは存在しませんfalse; } long nowdt = system.currenttimemillis(); //システム内のミリ秒の現在の数cachedt = cache.getTimeout(); //キャッシュ内の有効期限が切れたミリ秒の数(cachedt <= 0 || cachedt> nowdt){//有効期限がゼロ以下、または有効期限が現在の時間よりも大きい場合、それはfals return falseです。 } else {//有効期限は有効期限よりも大きく、つまり、有効期限が取れます。 }} //キャッシュでサイズを取得しますpublic static int getCachesize(){return cachemap.size(); } //指定されたタイプのサイズを取得しますpublic static int getCachesize(string type){int k = 0; Iterator i = cachemap.entryset()。iterator();文字列キー; try {while(i.hasnext()){java.util.map.entry entry =(java.util.map.entry)i.next(); key =(string)entry.getKey(); if(key.indexof(type)!= -1){//一致する場合は、k ++を削除します。 }}} catch(Exception ex){ex.printstacktrace(); } return k; } //キャッシュオブジェクトですべてのキーバリュー名を取得public static arrayList getCacheAllkey(){arrayList a = new ArrayList(); try {iterator i = cachemap.entryset()。iterator(); while(i.hasnext()){java.util.map.entry entry =(java.util.map.entry)i.next(); a.add((string)entry.getKey()); }} catch(Exception ex){}最後に{return a; }} //キャッシュオブジェクトの指定されたタイプのキー値名を取得しますpublic static arrayList getCachElistKey(string type){arrayList a = new arrayList();文字列キー; try {iterator i = cachemap.entryset()。iterator(); while(i.hasnext()){java.util.map.entry entry =(java.util.map.entry)i.next(); key =(string)entry.getKey(); if(key.indexof(type)!= -1){a.add(key); }}} catch(例外Ex){}最後に{return a; }}}パッケージlhm.hcy.guge.frameset.cache; public class cache {private string key; //キャッシュIDプライベートオブジェクト値; //キャッシュデータプライベートロングタイムアウト; //更新時間プライベートブールの期限切れ。 // public cache(){super(); } public Cache(String key、object value、long timeout、boolean expired){this.key = key; this.value = value; this.timeout = timeout; this.expired = expired; } public string getKey(){return key; } public long gettimeout(){return timeout; } public Object getValue(){return値; } public void setKey(string string){key = string; } public void setimeout(long l){timeout = l; } public void setValue(object object){value = object; } public boolean isexpired(){return expired; } public void setExpired(boolean b){expired = b; }} //テストクラス、クラステスト{public static void main(string [] args){system.out.println(cachemanager.getsimpleflag( "alksd")); // cachemanager.putcache( "abc"、new Cache()); // cachemanager.putcache( "def"、new Cache()); // cachemanager.putcache( "ccc"、new Cache()); // cachemanager.clearonly( ""); // cache c = new Cache(); //(int i = 0; i <10; i ++){// cachemanager.putcache( ""+i、c); //} // cachemanager.putcache( "aaaaaaaa"、c); // cachemanager.putcache( "abchcy; alskd"、c); // cachemanager.putcache( "cccccccc"、c); // cachemanager.putcache( "abcoqiwhcy"、c); // system.out.println( "削除前のサイズ:"+cachemanager.getCachesize()); // cachemanager.getCacheAllkey(); // cachemanager.clearall( "aaaa"); // system.out.println( "削除後のサイズ:"+cachemanager.getCachesize()); // cachemanager.getCacheAllkey(); }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。