ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java中Object类的finalize的用法

2021-01-28 09:02:13  阅读:197  来源: 互联网

标签:java finalize win PersonMark Object gc null public


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

标签:java,finalize,win,PersonMark,Object,gc,null,public
来源: https://www.cnblogs.com/shituxingzhe1949/p/14337950.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有