<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    Java 中常用緩存Cache機制的實現

    時間:2025-03-30 01:05:05 java語言 我要投稿
    • 相關推薦

    Java 中常用緩存Cache機制的實現

      所謂緩存,就是將程序或系統經常要調用的對象存在內存中,一遍其使用時可以快速調用,不必再去創建新的重復的實例。這樣做可以減少系統開銷,提高系統效率。

      Java 中常用緩存Cache機制的實現

      緩存主要可分為二大類:

      一、通過文件緩存,顧名思義文件緩存是指把數據存儲在磁盤上,不管你是以XML格式,序列化文件DAT格式還是其它文件格式;

      二、內存緩存,也就是實現一個類中靜態Map,對這個Map進行常規的增刪查.

      代碼如下 :

      1. packagelhm.hcy.guge.frameset.cache;

      2.

      3. importjava.util.*;

      4.

      5. //Description:管理緩存

      6.

      7. //可擴展的功能:當chche到內存溢出時必須清除掉最早期的`一些緩存對象,這就要求對每個緩存對象保存創建時間

      8.

      9. publicclassCacheManager{

      10. privatestaticHashMapcacheMap=newHashMap();

      11.

      12. //單實例構造方法

      13. privateCacheManager(){

      14. super();

      15. }

      16. //獲取布爾值的緩存

      17. publicstaticbooleangetSimpleFlag(Stringkey){

      18. try{

      19. return(Boolean)cacheMap.get(key);

      20. }catch(NullPointerExceptione){

      21. returnfalse;

      22. }

      23. }

      24. publicstaticlonggetServerStartdt(Stringkey){

      25. try{

      26. return(Long)cacheMap.get(key);

      27. }catch(Exceptionex){

      28. return0;

      29. }

      30. }

      31. //設置布爾值的緩存

      32. publicsynchronizedstaticbooleansetSimpleFlag(Stringkey,booleanflag){

      33. if(flag&&getSimpleFlag(key)){//假如為真不允許被覆蓋

      34. returnfalse;

      35. }else{

      36. cacheMap.put(key,flag);

      37. returntrue;

      38. }

      39. }

      40. publicsynchronizedstaticbooleansetSimpleFlag(Stringkey,longserverbegrundt){

      41. if(cacheMap.get(key)==null){

      42. cacheMap.put(key,serverbegrundt);

      43. returntrue;

      44. }else{

      45. returnfalse;

      46. }

      47. }

      48.

      49.

      50. //得到緩存。同步靜態方法

      51. privatesynchronizedstaticCachegetCache(Stringkey){

      52. return(Cache)cacheMap.get(key);

      53. }

      54.

      55. //判斷是否存在一個緩存

      56. privatesynchronizedstaticbooleanhasCache(Stringkey){

      57. returncacheMap.containsKey(key);

      58. }

      59.

      60. //清除所有緩存

      61. publicsynchronizedstaticvoidclearAll(){

      62. cacheMap.clear();

      63. }

      64.

      65. //清除某一類特定緩存,通過遍歷HASHMAP下的所有對象,來判斷它的KEY與傳入的TYPE是否匹配

      66. publicsynchronizedstaticvoidclearAll(Stringtype){

      67. Iteratori=cacheMap.entrySet().iterator();

      68. Stringkey;

      69. ArrayListarr=newArrayList();

      70. try{

      71. while(i.hasNext()){

      72. java.util.Map.Entryentry=(java.util.Map.Entry)i.next();

      73. key=(String)entry.getKey();

      74. if(key.startsWith(type)){//如果匹配則刪除掉

      75. arr.add(key);

      76. }

      77. }

      78. for(intk=0;k<arr.size();k++){

      79. clearOnly(arr.get(k));

      80. }

      81. }catch(Exceptionex){

      82. ex.printStackTrace();

      83. }

      84. }

      85.

      86. //清除指定的緩存

      87. publicsynchronizedstaticvoidclearOnly(Stringkey){

      88. cacheMap.remove(key);

      89. }

      90.

      91. //載入緩存

      92. publicsynchronizedstaticvoidputCache(Stringkey,Cacheobj){

      93. cacheMap.put(key,obj);

      94. }

      95.

      96. //獲取緩存信息

      97. publicstaticCachegetCacheInfo(Stringkey){

      98.

      99. if(hasCache(key)){

      100. Cachecache=getCache(key);

    【Java 中常用緩存Cache機制的實現】相關文章:

    java的緩存機制07-29

    java的緩存機制簡介09-06

    Java如何實現一個簡單的緩存09-29

    java中反射機制11-11

    php頁面緩存實現方法07-20

    Java中如何實現顯示動態的時間09-28

    講解Java的Spring框架中的AOP實現10-30

    CPU中Cache是什么08-22

    Java反射機制07-02

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人