Bla*_*jac 6 java java.util.concurrent weakhashmap guava
我们有一个Scala服务器,它通过套接字使用Protocol Buffers获取节点树,我们需要将附加数据附加到每个节点.
在单线程上下文中,当节点树和关联数据同时删除其强引用时(由于超出范围),有没有理由使用带有weakKeys()的Google Guava的MapMaker而不是使用WeakHashMap ?似乎使用MapMaker,可以支付同步访问权限,在这种情况下不需要.
顺便说一下,如果MapMaker允许访问等价设置,那么可以选择引用相等但不关心弱引用或软引用.
一个重要的缺点WeakHashMap是它不是"身份地图".也就是说,它使用equals()和hashCode(而不是==和identityHashCode)键,这对于弱键实际上没有意义.您可以通过确保您的密钥在其equals方法中使用标识相等性来解决此错误.
| 归档时间: | 
 | 
| 查看次数: | 1865 次 | 
| 最近记录: |