WeakHashMap的主要用途是什么?
WeakHashMap是Java集合框架中的一部分,它是一种特殊类型的Map实现,它使用弱引用作为键。
在WeakHashMap中,当某个键不再正常使用时,会被垃圾收集器视为可回收的垃圾,这时WeakHashMap会自动移除该键及其对应的值。这一特性使得WeakHashMap非常适合用于需要缓存内容但又不想阻止垃圾收集器回收对象的场景。
例如,考虑一个系统,它保持了大量的图像对象,每个图像都有一个关联的Bitmap对象。如果我们希望在内存充足时能够快速访问这些Bitmap,但在内存不足时,这些Bitmap可以被回收,那么我们可以将图像对象作为键,Bitmap作为值,存储在WeakHashMap中。当图像对象在其他地方不再被使用时,垃圾收集器会回收它,同时WeakHashMap也会自动移除对应的键值对,从而释放Bitmap对象所占用的内存。
这种自动移除不再使用的键值对的特性,使得WeakHashMap在实现缓存等需要自动清理过期对象的场景中非常有用。