java WeakHashMap的问题
具体原因不清楚。我猜测是因为“xxx”形式时,会首先从字符串静态池中获取。当获取不到时。会new一个放入静态池。调用。
System.gc();是垃圾回收机制。强制回收。
如果直接new出来的话。此时没有被调用。就会被回收掉。
而静态池的话会保留下来。
希望可以帮你。个人拙见。
这是由于WeakHashMap自己的特性决定的
在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。
更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。
丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。
null 值和 null 键都被支持。该类具有与 HashMap 类相似的性能特征,并具有相同的效能参数初始容量 和加载因子。
标签:java,WeakHashMap
版权声明:文章由 酷百书 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kubaishu.com/answer/433005.html