1

我正在使用基于引用的驱逐的谷歌番石榴缓存。我想知道如果缓存已满并且没有任何元素被标记为可驱逐会发生什么?是否抛出内存不足异常?

4

1 回答 1

1

基于引用的驱逐本质上与 Java 的标准 GC 行为没有什么不同 - GC 只是忽略缓存中引用的存在。如果一个对象超出范围(除了缓存之外的所有地方),它将在 GC 期间从缓存中逐出。如果缓存的所有元素都在其他地方,因此无法进行 GC,那么您将遇到内存问题,就像您不使用缓存时一样。内存中的数据不能超过 JVM 配置允许的数量。使用引用驱逐缓存不会改变这一点。

于 2017-12-06T09:08:38.787 回答