首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

static的常驻内存储器

2012-10-28 
static的常驻内存对于配置等经常使用的对象,而且基本上在使用的时候很少修改的,我们可以让它常驻内存.如何

static的常驻内存
对于配置等经常使用的对象,而且基本上在使用的时候很少修改的,我们可以让它常驻内存.

如何常驻内存,这是我们最关心的.这就是static的使用技巧,
照例以配置文件来讨论,请看以下代码

  只是说的一个方式而已,  需要全局有很多方法 比如web中放app等.  随便说说而已public static HashMap setExpMap(String key, Object o){   synchronized(this){       expMap.put(key, o);     }   return expMap.clone();}public static Object removeExpMap(String key){   synchronized(this){       expMap.remove(key);     }   return expMap.clone();}}



支持timerri 的看法, 这里set方法确实用synchronized 不太好 20 楼 starse7en77 2008-12-20   static 其实并没有那么恐怖 ...
对读取数据用同步很是不懂
其实 , 这里用单例就够了 , 几乎可以忽略同步的影响 .
还有不明白的是 , 为什么装载配置在构造函数中 , 而读取数据却用static方法 ? 没有什么是不可能 .
21 楼 starse7en77 2008-12-20   fjlyxx 写道提个建议,这个类你是否要考虑到单例,个人觉得要保护好你的STATIC 还有同步呢?
再则,怎么方法都没有抛出异常,如果指定KEY找不到VALUE是不是返回NULL呢?如果这样外部是否还要判断,你这块的逻辑需要补充。
哦 对了 最好在方法里面加final 避免恶意修改,反正你也不要继承的。
个人意见,仅供参考。

第一句话好深 . 还真不易理解 . 呵呵 22 楼 frenchmay 2008-12-21   private static HashMap expMap = new HashMap();
如果改为private static final Map expMap = new HashMap()
会怎么样??不知道楼主考虑过没有

另外
public static HashMap setExpMap(String key, Object o){ 
    synchronized(this){ 
        expMap.put(key, o); 
      } 
    return expMap.clone(); 

这样做是否成本太高,是否可以尝试单独创建一个方法返回clone对象

另外这个clone是否能够把里面的键值也clone吗??

热点排行