يعني التخزين المؤقت أن الكائنات التي غالبًا ما يتم تخزين الكائنات التي يقوم بها البرنامج أو النظام في الذاكرة ، ويمكن استدعاؤها بسرعة عند استخدامها مرة واحدة ، دون إنشاء مثيلات مكررة جديدة. القيام بذلك يمكن أن يقلل من النفقات العامة للنظام وتحسين كفاءة النظام.
يمكن تقسيم ذاكرة التخزين المؤقتة بشكل أساسي إلى فئتين:
1. من خلال التخزين المؤقت للملفات ، كما يوحي الاسم ، يشير التخزين المؤقت للملف إلى تخزين البيانات على القرص ، سواء كنت بتنسيق XML أو تنسيق DAT المسلسل أو تنسيقات الملفات الأخرى ؛
2. ذاكرة التخزين المؤقت للذاكرة ، أي تنفيذ خرائط ثابتة في الفصل ، وأداء إضافات منتظمة ، حذف وبحث عن هذه الخريطة.
استيراد java.util.*؛ // الوصف: إدارة ذاكرة التخزين المؤقت // وظائف قابلة للتمديد: عندما تصل Chche إلى تجاوز الذاكرة ، يجب مسح بعض كائنات ذاكرة التخزين المؤقت الأولى ، مما يتطلب توفير وقت إنشاء كل كائن ذاكرة التخزين المؤقت من الفئة العامة Cachemanager {private Static Hashmap Cachemap = new hashmap () ؛ // مُنشئ مثيل واحد خاص cachemanager () {super () ؛ } // Get Boolean Cache public static boolean getSimpleFlag (string key) {try {return (boolean) cachemap.get (key) ؛ } catch (nullPointerException e) {return false ؛ }} static static static long getServerStartDT (مفتاح السلسلة) {try {return (long) cachemap.get (key) ؛ } catch (استثناء ex) {return 0 ؛ }} // تعيين ذاكرة التخزين المؤقت المنطقية المزامنة بشكل عام setSimpleFlag (مفتاح السلسلة ، علامة منطقية) {if (flag && getSimpleFlag (مفتاح)) {// إذا كان صحيحًا ، فلا يُسمح بإعادة الكتابة فوقها ؛ } آخر {cachemap.put (المفتاح ، العلم) ؛ العودة صحيح. }}} setSimpleFlag الثابتة المزامنة العامة (مفتاح السلسلة ، خادم طويل) {if (cachemap.get (key) == null) {cachemap.put (المفتاح ، serverbegrundt) ؛ العودة صحيح. } آخر {return false ؛ }} // الحصول على ذاكرة التخزين المؤقت. الطريقة الثابتة المتزامنة الخاصة ذاكرة التخزين المؤقت الثابتة المتزامنة getCache (مفتاح السلسلة) {return (cache) cachemap.get (مفتاح) ؛ }. }. }. مفتاح السلسلة ArrayList arr = new ArrayList () ؛ جرب {بينما Key = (String) Entpl.getKey () ؛ if (key.startswith (type)) {// إذا كان متطابقًا ، حذف arr.add (مفتاح) ؛ }} لـ (int k = 0 ؛ k <arr.size () ؛ k ++) {clearonly (arr.get (k)) ؛ }} catch (استثناء ex) {ex.printStackTrace () ؛ }} // قم بمسح ذاكرة التخزين المؤقت المحددة المتزامنة بشكل عام clearonly (مفتاح السلسلة) {cachemap.remove (مفتاح) ؛ } // تحميل ذاكرة التخزين المؤقت putcache putCache الثابتة المتزامنة العامة (مفتاح السلسلة ، ذاكرة التخزين المؤقت OBJ) {cachemap.put (المفتاح ، OBJ) ؛ }. if (cacheexpired (cache)) {// call لتحديد ما إذا كان سيتم إنهاء طريقة cache.setexpired (true) ؛ } إرجاع ذاكرة التخزين المؤقت ؛ } آخر عودة لاغية ؛ }. cache.setKey (مفتاح) ؛ cache.SettImeout (dt + system.currentTimeMillis ()) ؛ // تعيين كم من الوقت لتحديث ذاكرة التخزين المؤقت Cache.SetValue (OBJ) ؛ cache.setExpired (منتهية الصلاحية) ؛ // عندما يتم تحميل ذاكرة التخزين المؤقت افتراضيًا ، تكون حالة الإنهاء كاذبة cachemap.put (المفتاح ، ذاكرة التخزين المؤقت) ؛ }. cache.setKey (مفتاح) ؛ cache.SettImeout (dt+system.currentTimeMillis ()) ؛ cache.setValue (OBJ) ؛ cache.setExpired (false) ؛ cachemap.put (المفتاح ، ذاكرة التخزين المؤقت) ؛ } // upply ما إذا كانت ذاكرة التخزين المؤقت تنهي cacheexpired boolean الثابتة العامة (ذاكرة التخزين المؤقت ذاكرة التخزين المؤقت) {if (null == cache) {// أن ذاكرة التخزين المؤقت الواردة غير موجودة ؛ } long nowdt = system.currentTimeMillis () ؛ // العدد الحالي للمللي ثانية في النظام long cachedt = cache.getTimeout () ؛ . } آخر {// وقت انتهاء الصلاحية أكبر من وقت انتهاء الصلاحية ، أي إرجاع منتهية الصلاحية ؛ }} // الحصول على الحجم في ذاكرة التخزين المؤقت الثابتة int getCachesize () {return cachemap.size () ؛ } // احصل على حجم النوع المحدد للجمهور الثابت int intcachesize (نوع السلسلة) {int k = 0 ؛ iterator i = cachemap.entryset (). iterator () ؛ مفتاح السلسلة جرب {بينما Key = (String) Entpl.getKey () ؛ if (key.indexof (type)! = -1) {// إذا كان متطابقًا ، حذف k ++ ؛ }}} catch (استثناء ex) {ex.printStackTrace () ؛ } return K ؛ } // احصل على جميع أسماء القيمة الرئيسية في كائن ذاكرة التخزين المؤقت العامة arraylist getCachealLkey () {ArrayList a = new ArrayList () ؛ حاول {iterator i = cachemap.entrySet (). iterator () ؛ بينما (i.hasnext ()) {java.util.map.entry entry = (java.util.map.entry) i.next () ؛ A.Add ((String) entry.getKey ()) ؛ }} catch (استثناء ex) {} أخيرًا {return a ؛ }} // احصل على اسم قيمة المفتاح للنوع المحدد في كائن ذاكرة التخزين المؤقت العام arraylist arraylist getCachelistkey (نوع السلسلة) {ArrayList a = new ArrayList () ؛ مفتاح السلسلة حاول {iterator i = cachemap.entrySet (). iterator () ؛ بينما (i.hasnext ()) {java.util.map.entry entry = (java.util.map.entry) i.next () ؛ Key = (String) Entpl.getKey () ؛ if (key.indexof (type)! = -1) {A.Add (key) ؛ }}} catch (استثناء ex) {} أخيرًا {return a ؛ }}} package lhm.hcy.guge.frameset.cache ؛ ذاكرة التخزين المؤقت للفئة العامة {مفتاح السلسلة الخاصة ؛ // معرف ذاكرة التخزين المؤقت قيمة الكائن الخاص ؛ // بيانات ذاكرة التخزين المؤقت لفترة طويلة طويلة ؛ // تحديث الوقت المنطقي الخاص ؛ // لا تنهي ذاكرة التخزين المؤقت العامة () {super () ؛ } ذاكرة التخزين المؤقت العامة (مفتاح السلسلة ، قيمة الكائنات ، القتيول الطويلة ، منتهية الصلاحية) {this.key = key ؛ this.value = القيمة ؛ this.timeout = timeout ؛ this.expired = انتهت صلاحية ؛ } السلسلة العامة getKey () {return Key ؛ } public getTimeOut () {return timeout ؛ } الكائن العام getValue () {return value ؛ } public void setKey (سلسلة سلسلة) {key = string ؛ } public void setTimeOut (long l) {timeout = l ؛ } public void setValue (Object Object) {value = object ؛ } boolean public isexpired () {return انتهت صلاحية ؛ } public void setExpired (boolean b) {Expired = b ؛ }} // فئة الاختبار ، اختبار الفئة {public static void main (string [] args) {system.out.println (cachemanager.getSimpleFlag ("alksd")) ؛ // cachemanager.putcache ("ABC" ، cache ()) ؛ // cachemanager.putcache ("def" ، cache ()) ؛ // cachemanager.putcache ("CCC" ، 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 أكثر.