作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我们有一个 Scala 服务器,它通过套接字使用 Protocol Buffers 获取节点树,我们需要将额外的数据附加到每个节点。
在单线程上下文中,当节点树和关联数据将同时删除它们的强引用时(由于超出范围),是否有任何理由将 Google Guava 的 MapMaker 与 weakKeys() 一起使用过度使用 WeakHashMap?似乎使用 MapMaker,需要为同步访问付费,在这种情况下不需要。
顺便说一句,如果 MapMaker 允许访问等价设置,那么人们可以选择引用相等而不关心弱引用或软引用,这将很有用。
最佳答案
WeakHashMap
的一个重要缺点是它不是“身份映射”。也就是说,它在键上使用 equals()
和 hashCode
(而不是 ==
和 identityHashCode
),这对于弱键真的没有意义。您可以通过确保您的 key 在其 equals
方法中使用身份相等来解决此错误。
关于java - Guava MapMaker().weakKeys().makeMap() 与 WeakHashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4201674/
我们有一个 Scala 服务器,它通过套接字使用 Protocol Buffers 获取节点树,我们需要将额外的数据附加到每个节点。 在单线程上下文中,当节点树和关联数据将同时删除它们的强引用时(由于
我是一名优秀的程序员,十分优秀!