gpt4 book ai didi

Java:使用 jlibs 保证垃圾收集

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:04 25 4
gpt4 key购买 nike

以下片段来自 RuntimeUtil.java来自 jlibs 保证 GC 垃圾收集完成。

因为它还使用 System.gc(),我不明白他们怎么能保证它会 100% 发生。

以下是片段:

/**
* This method guarantees that garbage collection is
* done unlike <code>{@link System#gc()}</code>
*/
public static void gc(){
Object obj = new Object();
WeakReference ref = new WeakReference<Object>(obj);
obj = null;
while(ref.get()!=null)
System.gc();
}

最佳答案

它与关于 Garbae Collection 的Strong ReferenceWeak Reference 相关。

强引用是普通的 Java 引用,您每天都在使用这种引用。

如果一个对象可以通过强引用链(strongly reachable)到达,则它不符合垃圾回收的条件。由于您不希望垃圾收集器破坏您正在处理的对象,因此这通常正是您想要的。

弱引用,简单地说,就是一种引用的强度不足以强制对象保留在内存中。弱引用允许您利用垃圾收集器的能力来确定可达性

pointed 类中的 gc() 方法适用于此概念。

     /**
* This method guarantees that garbage collection is
* done unlike <code>{@link System#gc()}</code>
*/

public static void gc(){
Object obj = new Object();
WeakReference ref = new WeakReference<Object>(obj);
obj = null;
while(ref.get()!=null)
System.gc();
}

一旦 WeakReference 开始返回 null,它指向的对象就变成了垃圾并且 WeakReference 对象几乎没有用。这通常意味着需要进行某种清理;

这就是为什么他们保证它会 100% 发生。

关于Java:使用 jlibs 保证垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com