static的常驻内存
对于配置等经常使用的对象,而且基本上在使用的时候很少修改的,我们可以让它常驻内存.
如何常驻内存,这是我们最关心的.这就是static的使用技巧,
照例以配置文件来讨论,请看以下代码
支持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吗??