MST

星途 面试题库

面试题:Java中WeakHashMap的弱引用机制原理

请简述Java中WeakHashMap的弱引用机制是如何工作的,当一个键对象只有弱引用指向它时,WeakHashMap会有怎样的行为?
18.7万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

WeakHashMap的弱引用机制工作原理

  1. 键使用弱引用:在WeakHashMap中,键对象是通过弱引用(WeakReference)来关联的。这意味着当键对象在系统的其他地方不再有强引用指向它时,该键对象就有可能被垃圾回收器回收。
  2. 垃圾回收触发:垃圾回收器在进行垃圾回收时,会识别那些只有弱引用指向的对象,并将其回收。一旦键对象被垃圾回收,WeakHashMap中的对应项并不会立即被移除。
  3. 实际移除时机:当WeakHashMap下一次执行getputremove等操作时,会检查键是否已经被垃圾回收。如果键已被回收,那么对应的键值对会从WeakHashMap中移除。

当一个键对象只有弱引用指向它时WeakHashMap的行为

  1. 键值对不会立即移除:虽然键对象已符合垃圾回收条件,但WeakHashMap不会马上将对应的键值对删除。
  2. 操作时移除:直到WeakHashMap执行某些关键操作(如getputremove等)时,WeakHashMap会遍历哈希表,检查每个键是否还存在(即是否已被垃圾回收)。如果发现某个键已被回收,就会将对应的键值对从WeakHashMap中移除。