14.3. 存储和检索数据
虽然 JCache API 不扩展 java.util.Map 而不是 java.util.concurrent.ConcurrentMap,但它提供了一个键/值 API 来存储和检索数据:
与标准的 java.util.Map 不同,javax.cache.Cache 附带两个基本的放置方法,称为 put 和 getAndPut。前者返回 void,后者返回与键关联的以前的值。因此,JCache 中的 java.util.Map.put (K) 等效于 javax.cache.Cache.getAndPut (K)。
提示
虽然 JCache API 仅涵盖独立缓存,但可以使用持久性存储插入它,并考虑了集群或分发。javax.cache.Cache 提供两个放置方法的原因是,标准 java.util.Map 放置调用强制实施器来计算之前的值。当使用持久性存储或缓存被分发时,返回前面的值可能是一个昂贵的操作,用户通常会调用标准 java.util.Map.put (K),而无需使用返回值。因此,JCache 用户需要考虑返回值是否与它们相关,在这种情况下,需要调用 javax.cache.Cache.getAndPut (K),否则他们可以调用 java.util.Map.put (K, V),以避免返回之前值的潜在昂贵的操作。