Кэширование означает, что объекты, которые часто вызывают программу или систему, хранятся в памяти, и могут быть вызваны быстро при использовании один раз, без создания новых дублирующих экземпляров. Это может уменьшить накладные расходы и повысить эффективность системы.
Кэши могут быть в основном разделены на две категории:
1. Через кеширование файла, как следует из имени, кэширование файлов относится к хранению данных на диске, независимо от того, находитесь ли вы в формате XML, сериализованном формате DAT или других форматах файлов;
2. Кэш памяти, то есть реализуйте статические карты в классе и выполняйте регулярные дополнения, удаление и поиск этой карты.
Импорт java.util.*; // Описание: Управление кэшем // Расширяемые функции: когда CHCHE достигает переполнения памяти, некоторые из самых ранних объектов кэша должны быть очищены, что требует сохранения времени создания для каждого объекта кэша CacheManager {Private Static Hashmap Cachemap = new Hashmap (); // конструктор отдельного экземпляра Private CacheManager () {super (); } // Получить логический кэш public static boolean getSiMpleflag (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); вернуть истину; }} public synchronized static boolean setsimpleflag (String Key, Long ServerBegrundt) {if (cachemap.get (key) == null) {cachemap.put (key, serverbegrundt); вернуть истину; } else {return false; }} // Получить кэш. Синхронизированный статический метод частный синхронизированный статический кэш getCache (String Key) {return (cache) cachemap.get (key); } // Судья, есть ли кэш -частный синхронизированный статический логический подраздел Hascache (String Key) {return cachemap.containskey (key); } // Очистить все кэши публичные синхронизированные static void clearall () {cachemap.clear (); } // Очистить определенный тип кэша и определить, соответствуют ли его ключ и входящий тип общедоступной синхронизированной статической void clearall (строка типа) {итератор i = cachemap.entryset (). Iterator (); String Key; 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 (); }} // Очистить указанный кэш public synchronized static void clearonly (string key) {cachemap.remove (key); } // Загрузите кэш public synchronized static 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 return null; } // Загрузите информацию о кэше public void putcacheinfo (String Key, Cache obj, Long DT, Boolean Expired) {cache cache = new cache (); cache.setkey (ключ); cache.settimeout (dt + system.currenttimemillis ()); // установить, как долго обновить кэш cache.setValue (obj); cache.setexpired (истечь); // Когда кэш загружается по умолчанию, состояние завершения является false cachemap.put (key, cache); } // Перепишите метод информации о кеше загрузки public void putcacheinfo (String Key, Cache obj, long dt) {cache cache = new cache (); cache.setkey (ключ); cache.settimeout (dt+system.currenttimemillis ()); cache.setValue (obj); cache.setexpired (false); cachemap.put (key, cache); } // Судья, заканчивает ли кэш публичный статический логический качеевой (кэш -кэш) {if (null == cache) {// входящий кэш не существует, вернуть false; } long nowsdt = System.currentTimeMillis (); // текущее количество миллисекундов в системе long cachedt = cache.gettimeout (); // количество истекших миллисекундов в кэше if (cachedt <= 0 || cachedt> nowdt) {// Когда время истечения меньше или равно нулю или время истечения больше, чем текущее время, оно является false return false; } else {// Время истечения больше, чем время истечения, то есть истечь возвращается верно; }} // Получить размер в кэш public static int getCachesize () {return cachemap.size (); } // Получить размер указанного типа Public Static int getCachesize (String Type) {int k = 0; Итератор I = cachemap.EntrySet (). Iterator (); String Key; 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; } // Получить все имена клавиш значений в объекте Cache 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; }} // Получить имя значения ключа указанного типа в объекте Cache Public Static ArrayList getCachelistKey (тип строки) {ArrayList a = new ArrayList (); String Key; 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 (Exception ex) {} наконец {return a; }}} Пакет lhm.hcy.guge.frameset.cache; public Class Cache {Private String Key; // ID CACHE Private Object Value; // Cache Data Private Long Timeout; // Обновление времени частного логического срока истечения; // не прекращайте public cache () {super (); } public Cache (String Key, значение объекта, долгой тайм -аут, срок службы Boolean) {this.key = key; this.value = значение; this.imeout = timeout; this.expired = истечь; } public String getKey () {return Key; } public long getTimeout () {Time -Out; } public Object getValue () {return Value; } public void setKey (String String) {key = string; } public void settimeout (long l) {timeout = l; } public void setValue (Object Object) {value = Object; } public boolean isexpired () {return ascired; } 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 (); // for (int i = 0; i <10; i ++) {// cachemanager.putcache ("+i, c); //} // cachemanager.putcache ("aaaaaaaaa", 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 больше.