我正在寻找一个Java内存中对象缓存API.有什么建议?你过去使用过什么解决方案?
现在,我只是使用地图:
Map cache = new HashMap<String, Object>();
cache.put("key", value);
Run Code Online (Sandbox Code Playgroud)
我需要扩展缓存以包括以下基本功能:
但是,我不需要更复杂的功能,如:
内存缓存:
企业缓存:
我刚刚阅读了"清洁代码"一书,并发现了这一说法:
当Java年轻的时候,Doug Lea写了一本开创性的书[8] Java中的Concurrent Programming.随着这本书,他开发了几个线程安全的集合,后来成为了JDK的
java.util.concurrent一部分.该软件包中的集合对于多线程情况是安全的,并且它们表现良好.事实上,ConcurrentHashMap在 几乎所有情况下, 实现都比HashMap表现更好.它还允许同时并发读取和写入,并且它具有支持常见复合操作的方法,否则这些操作不是线程安全的.如果Java 5是部署环境,请从ConcurrentHashMap
请注意,在上面的引用中,我使用了"[n]",其中n是某个数字,表示作者提供引用的地方,正如您所看到的,他没有为粗体部分提供任何参考.
并不是说我不相信这个陈述,但我很想知道这个陈述的支持证据.因此,没有人知道,显示了两种性能统计信息的任何资源ConcurrentHashMap和HashMap?或者任何人都可以向我解释为什么ConcurrentHashMap比HashMap更快?
我可能会在休息时看看ConcurrentHashMap在工作中的实现,但是现在我想听听其他SOers的答案.
我想使用带有番石榴缓存的spring-cache,但我发现guava缓存已被春季官方文档标记为已弃用.我想知道为什么,他们没有给出一些解释.