可能重复:
Why is softKeys() deprecated in Guava 10?
MapMaker.softKeys()在JavaDoc中被废弃的原因:
使用softValues创建内存敏感映射,或者使用weakKeys创建不包含对键的强引用的映射。该方法定于2013年1月删除。
这个方法是坏的,。与弱键的映射相比,带有软键的映射没有功能优势,它们通过在映射中保留不可访问的元素而浪费内存。如果您的目标是创建一个内存敏感映射,那么请考虑使用软值。
指定存储在映射中的每个键(而不是值)应包装在SoftReference中(默认情况下使用强引用)。作为对内存需求的回应,软引用的对象将被垃圾收集,在全球范围内使用最少。
我不明白为什么软值比软键更喜欢?有什么方案吗?MapMaker.softValues()仍然可用。谢谢!
发布于 2012-03-18 12:09:36
包含软项和弱项的地图有两个主要用例:
请注意,在后一种情况下使用软键而不是弱键没有任何意义,并导致不必要的内存使用,因此软键没有实际用途,这就是不推荐使用软键的原因。
https://stackoverflow.com/questions/9758001
复制相似问题