我已经通过javax.cache.Cache
了解它的用法和行为。据说,
JCache是一种类似Map的数据结构,提供临时存储 申请数据。
JCache和HashMap将元素存储在本地堆内存中,默认情况下没有持久性行为。通过实施自定义CacheLoader
和CacheWriter
,我们可以实现持久性。除此之外,何时使用它?
答案 0 :(得分:7)
缓存通常具有比地图更多的管理逻辑,这些只是一个或多或少的简单数据结构。
一些概念,JCaches可以实现
其中一些是JCache的更一般概念,一些是缓存提供者的具体实现细节
答案 1 :(得分:1)
以下是两个对象之间的五个主要差异。
与java.util.Map不同,Cache:
- 不允许使用null键或值。尝试使用null将导致java.lang.NullPointerException
- 提供从javax.cache.integration.CacheLoader(read-through-caching)读取值的能力 请求的值不在缓存中
- 提供了在javax.cache.integration.CacheWriter(写入缓存)中写入值的能力 正在创建/更新/从缓存中删除的值
- 提供观察缓存条目更改的能力
- 可以捕获并衡量运营统计数据
答案 2 :(得分:0)
大多数情况下,缓存实现使那些缓存的对象脱离堆(GC不能访问)。 GC跟踪Java中分配的每个对象。想象一下,您的内存中有数百万个对象。如果没有这些对象,请相信我,GC将使您的应用程序性能变得糟透了。