怎么在java中清理finalize

怎么在java中清理finalize?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。

1.概念

finalize()主要用于在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。

2.语法

protected void finalize() throws Throwable { }

3.参数

4.返回值

没有返回值

5.实例

public class FinalizeTest {
 
    static  class Person {
        String name;
 
        @Override
        protected void finalize() throws Throwable {
            System.out.println("finalize " + name);
            super.finalize();
        }
    }
 
 
    public static void main(String[] args) {
        Person p = new Person();
        p.name = "ltt";
        p = null;  // 此后,p原先指向的Person对象会在某个时间被 gc 回收掉
 
        System.gc();  // 建议 JVM 进行 gc 操作,但不一定会进行 gc 操作
        System.runFinalization();  // 执行将要被销毁的对象的 finalize 方法
    }
}

运行结果

finalize ltt

为了触发 gc行为,用了下面的代码:

System.gc();  // 建议 JVM 进行 gc 操作,但不一定会进行 gc 操作
System.runFinalization();  // 执行将要被销毁的对象的 finalize 方法

看完上述内容,你们掌握怎么在java中清理finalize的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!