如何在Java中清除软引用?
我有一个缓存,它具有对缓存对象的软引用。我正在尝试为使用缓存的类的行为编写一个功能测试,专门用于清除缓存对象时发生的情况。
问题是:我似乎无法可靠地清除软引用。简单地用完一堆内存并不能解决问题:在清除任何软引用之前,我得到了一个OutOfMemory。
有没有办法让Java更热切地清理软引用?
在这里找到:
“可以保证,在OutOfMemoryError被抛出之前,所有SoftReference都会被清除,所以理论上它们不能导致OOME。
那么这是否意味着上述情况必须意味着我在某个地方有内存泄漏,某个类在我的缓存对象上持有硬引用?