我想实现一个公共缓存变量存储,以便在类之间共享。我有很多类,因为我使用黄瓜java网络驱动程序,有必要在步骤,页面对象/类之间共享。
我有课程
public class Cache {
private HashMap<String, String> cache = new HashMap<String, String>();
public HashMap<String, String> getCache() {
return cache;
}
}
但问题是,设置键值对的最有效方法是什么?
我的想法是使用 getter 来获取和使用存储的变量,例如 cache.get("KEY"(,然后我得到值。如何在此缓存中以有效的方式存储变量?
任何示例代码将不胜感激。
-
当使用'cache.set(key,val('时,明显的效率因素是键和哈希函数的选择。然而,在 99%我项目中的百分比足够高效,可以使用简单明了的字符串键(例如,如果您的企业需要按出版商+标题缓存书籍,那么"penguin_prideAndPrejudice"可能会很好(。但是,确定的唯一方法是在数据样本上对其进行测试!
- 作为旁注,虽然这不是你最初的问题,但我建议考虑线程安全(HashMap 不是线程安全的,所以对于并发环境,请考虑同步或 ConcurrentHashMap - 只是要注意某些版本中的错误( 有第三方缓存,例如
- 番石榴 ,可能有助于高级缓存注意事项,例如过期。