前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >java中Object类的finalize的用法

java中Object类的finalize的用法

作者头像
马克java社区
修改2021-03-29 14:29:03
修改2021-03-29 14:29:03
4070
举报
文章被收录于专栏:java大数据java大数据

Object类的finalize的用法:

马克-to-win:java当中有个垃圾回收机制,具体说,就是当一些对象被创建使用之后若不再使用的话{比如(i)对象被置成null.(ii)局部对象(无需置成null)当程序运行到右大括号.(iii)匿名对象刚用完},就会变成垃圾占用空间,JAVA的自动垃圾回收(gc)线程会在适当的时候自动运行,回收内存。马克-to-win: 再具体一点,对象被创建之后,垃圾回收(gc)系统就开始跟踪这个对象的使用情况。垃圾回收系统采用有向图的方式:开始时对象一定是可达的,刚把它置为null时,它也就变成了不可达的了,这时就是所谓的垃圾。垃圾回收系统就会回收这些内存空间。马克-to-win:回收之前,先调用该对象的finalize方法。让其做一些最后的收尾工作。见下例,当p1 = null;时,Java的垃圾回收线程会在适当时间点回收p1对象占据的内存空间。马克-to-win:回 收之前,首先调用p1的finalize()。但是sun公司不保证finalize方法会被及时地自动执行。所以我们加了一句,System.gc ();建议系统回收一下垃圾。gc代表garbage collection(垃圾回收),finalize方法就被执行了。

例2.1.4---

class PersonMark_to_win {

    String name;

    public PersonMark_to_win(String n) {

        name = n;

    }

    public void finalize() {

        System.out.println(name + " 在进行finalize");

    }

}

public class Test {

    public static void main(String[] args) throws InterruptedException {

        PersonMark_to_win p1 = new PersonMark_to_win("张三");

        PersonMark_to_win p2 = new PersonMark_to_win("李四");

        p1 = null;

        // p2 = null;

        System.gc();

        // Thread.sleep(3000);//如果发现gc不执行,就运行一下sleep

    }

}

例2.1.4_a

class PersonMark_to_win {

    String name;

    public PersonMark_to_win(String n) {

        name = n;

    }

    public void finalize() {

        System.out.println(name + " 在进行finalize");

    }

    void test(){

        PersonMark_to_win pp1 = new PersonMark_to_win("张三jubu");

    }

}

public class Test {

    public static void main(String[] args) throws InterruptedException {

        PersonMark_to_win p1 = new PersonMark_to_win("张三");

        PersonMark_to_win p2 = new PersonMark_to_win("李四");

        p2.test();

        System.gc();

        p1 = null;

        // p2 = null;

        System.gc();

         Thread.sleep(3000);//如果发现gc不执行,就运行一下sleep

    }

}

更多请见:https://blog.csdn.net/qq_44639795/article/details/101519682

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档