首页 > 解决方案 > 为什么番石榴缓存支持weakKeys()和weakValues()

问题描述

Guava CacheBuilder 支持weakKeys() 和weakValues()。但是如果值被收集了,为什么我们还要在缓存中保留键呢?所以如果我们只使用weakKeys(),就足够了吗?

标签: guava

解决方案


不是“收集键但保留值”的情况,也不“收集值但保留键”的情况。weakKeysweakValues

什么weakKeys是说,“当不再有任何对key的强引用时,收集整个条目。” 什么weakValues是说,“当不再有对该的任何强引用时,收集整个条目。” 因此,当您同时使用两者时,当键或值没有指向它的强引用时将收集整个条目。


推荐阅读