我正在调查 Hotspot-1.8 JVM 进行的堆转储。转储采用 hprof 格式并包含数千个 lambda 实例。
它们都是由这样的函数创建的:
public class Ref<T> {
private T obj;
void set(final T value) {
obj = value;
singletonMgr.register(() -> Ref.close(value));
}
private static <T> void close(T obj) { /* stuff */ }
}
有效并且 lambda 显示在singletonMgr
管理列表中。但除了<class>
每个对象获得的引用之外,它是空的。我会期待value
在那里的参考?
我缺少什么以及如何评估每个 Lambda 的value
?