大家好,又见面了,我是你们的朋友全栈君。
WeakHashMap,此种Map的特点是:
当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值,
举例来说:声明了两个Map对象,一个是HashMap,一个是WeakHashMap,同时向两个map中放入a、b两个对象,当HashMap remove掉a 并且将a、b都指向null时,WeakHashMap中的a将自动被回收掉。出现这个状况的原因是,对于a对象而言,当HashMap remove掉并且将a指向null后,除了WeakHashMap中还保存a外已经没有指向a的指针了,所以WeakHashMap会自动舍弃掉a,而对于b对象虽然指向了null,但HashMap中还有指向b的指针,所以 WeakHashMap将会保留
总结来说: WeakHashMap并不是你啥也不干他就能自动释放内部不用的对象的,而是在你访问它的内容的时候释放内部不用的对象
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138402.html原文链接:https://javaforall.cn