我们有一个Scala服务器,它通过套接字使用ProtocolBuffers获取节点树,我们需要将额外的数据附加到每个节点。在单线程上下文中,当节点树和关联数据将同时删除它们的强引用时(由于超出范围),是否有任何理由将GoogleGuava的MapMaker与weakKeys()一起使用过度使用WeakHashMap?似乎使用MapMaker,需要为同步访问付费,在这种情况下不需要。顺便说一句,如果MapMaker允许访问等价设置,那么人们可以选择引用相等而不关心弱引用或软引用,这将很有用。 最佳答案 WeakHashMap的一个