你什么时候会使用WeakHashMap或WeakReference? WeakReference对SoftReference
2022-08-31 07:05:12
弱引用的使用是我从未见过的实现,所以我试图弄清楚它们的用例是什么,以及实现将如何工作。您何时需要使用 or 以及如何使用它?WeakHashMap
WeakReference
弱引用的使用是我从未见过的实现,所以我试图弄清楚它们的用例是什么,以及实现将如何工作。您何时需要使用 or 以及如何使用它?WeakHashMap
WeakReference
强引用的一个问题是缓存,特别是对于非常大的结构,如图像。假设您有一个应用程序,它必须使用用户提供的图像,例如我使用的网站设计工具。当然,您希望缓存这些图像,因为从磁盘加载它们非常昂贵,并且您希望避免同时在内存中具有两个(可能是巨大的)图像副本的可能性。
因为图像缓存应该防止我们在不是绝对需要的时候重新加载图像,所以您很快就会意识到缓存应该始终包含对内存中已有的任何图像的引用。但是,对于普通的强引用,该引用本身将强制图像保留在内存中,这要求您以某种方式确定何时不再需要该图像在内存中并将其从缓存中删除,以便它符合垃圾回收的条件。您被迫复制垃圾回收器的行为,并手动确定对象是否应在内存中。
理解弱引用,伊桑·尼古拉斯