11.3. 存储和检索数据
虽然 JCache API 没有扩展 java.util.Map not 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),以避免返回之前值的可能昂贵的操作。