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