Dav*_*man 3 java garbage-collection soft-references java-memory-model
我想了解垃圾收集器在什么情况下会通知您清除软引用。文档清楚地表明它在可能发生 OOM 时发生,但是如果您完全丢弃引用,GC 会出现并收集 SoftReference 可能会注意到不存在其他强/软引用并清除内部引用值。
ReferenceQueue<Object> cleared = new ReferenceQueue<>();
Object X = new Object();
SoftReference<Object> Xs = new SoftReference<>(X, cleared);
Thread.sleep(10);
X = null;
Xs = null;
System.GC();
Thread.sleep(100);
Reference ref;
while ((ref = cleared.poll()) != null) {
System.err.println(ref);
}
Run Code Online (Sandbox Code Playgroud)
那么关于这个队列的规则记录在哪里?一定有比我问的更多的极端情况,所以也许这个问题必须扩大一点。
归档时间: |
|
查看次数: |
99 次 |
最近记录: |