gpt4 book ai didi

java - Guava Cache - 按身份比较值的含义是什么

转载 作者:行者123 更新时间:2023-11-30 04:05:08 25 4
gpt4 key购买 nike

CacheBuilder 方法 weakValues()softValues() 都在其 javadoc 中包含这一行:

Note: when this method is used, the resulting cache will use identity (==) comparison to determine equality of values.

这究竟如何影响行为?据我所知,CacheLoadingCache 接口(interface)上没有需要测试值相等性的公共(public)方法。它会影响 asMap() View 吗?

最佳答案

Guava 在内部缓存这些软/弱值。如果两个弱/软值的引用相等,则内容也必须相等。

Guava 仅比较 contains(...)remove(...)replace 等方法中的值(...) 用于查找特定条目并检查它是否确实存在或删除 key 。因此 guava 首先查找特定条目。如果找到,它将删除该条目。

我认为主要目的是检测显式删除条目,因为如果引用指向的值已经null,那么它就不是显式删除,但已被 guava 内部删除(计算)。

没什么可担心的。这就是 Guava 处理旧条目删除的方式。

没有办法改变这个,你真的不必关心这个, Guava 会处理这个:D

关于java - Guava Cache - 按身份比较值的含义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com