美文网首页
使用finalize让对象涅槃重生

使用finalize让对象涅槃重生

作者: 勤劳的杯子 | 来源:发表于2019-07-08 07:14 被阅读0次

详情参见代码:

package com.imooc.web;
import sun.misc.GC;

import javax.sound.midi.Track;
import java.awt.print.Book;

/**
 * Copyright (C), 2002-2019
 * FileName: TerminationCondition
 * <p>
 * Description:
 *
 * @author 如果这段代码非常棒就是梁子松写的
 * 如果这代码挺差劲那么我也不知道是谁写的
 * @version 1.0.0
 * @create 19-7-6 下午10:07
 */

public class TerminationCondition {

    private static TerminationCondition book = null;

    boolean aBoolean;

    public TerminationCondition(boolean aBoolean) {
        this.aBoolean = aBoolean;
    }

    public static void main(String[] args) throws InterruptedException {
        //初始化
        book = new TerminationCondition(true);
        //取消引用
        book = null;
        //清理
        System.gc();
        //确保被清理
        Thread.sleep(500);
        //因为有finalize方法所以对象会重生
        if (null != book) { //此时对象应该处于(reachable, finalized)状态
            System.out.println("Yes , I am still alive");
        } else {
            System.out.println("No , I am dead");
        }
        //再次取消引用
        book = null;
        //调用gc
        System.gc();
        //确保被清理
        Thread.sleep(500);
        //因为之前已经调用过finalize方法了所以对象已经被清理
        if (null != book) {
            System.out.println("Yes , I am still alive");
        } else {
            System.out.println("No , I am dead");
        }
    }

    @Override
    protected void finalize() throws Throwable {
        super.finalize();
        System.out.println("execute method finalize()");
        book = this;
    }
}

输出

execute method finalize()
Yes , I am still alive
No , I am dead

相关文章

  • 使用finalize让对象涅槃重生

    详情参见代码: 输出

  • finalize方法

    finalize方法/Finalize_.java 1.当对象被回收时,系统自动调用该对象的finalize方法。...

  • should

    1finalize方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前...

  • Java中finalize,hashcode和toString

    1 Finalize 1.1 finalize方法作用 finalize()方法可以被子类对象所覆盖,然后作为一个...

  • 我要在逆境中涅槃重生

    我要在逆境中涅槃重生 [中国]胡昆彬(现代) 我要在逆境中涅槃重生 烈火如歌,走向巅峰 我要在逆境中涅槃重生 心怀...

  • 涅槃的凤凰,你在哪?

    涅槃的凤凰,你在哪? 是什么样的现世绝望 让你毅然投向火海 是什么样重生的信念 让你相信浴火后的美丽 涅槃重生的凤...

  • finalize方法相关

    finalize原理简述 当一个对象变成(GC Roots)不可达时,GC会判断对象是否覆盖了finalize方法...

  • 什么是涅槃重生

    相信很多人都听说过涅槃重生,但却不一定明白什么叫涅槃重生。 其实所谓涅槃重生,正如古人所讲“置于死地而后生...

  • (五百三十一)涅槃

    涅槃 大家都说凤凰涅槃,浴火重生,涅槃,顾名思义,就是重生。 我一直好奇,写日记,不就是写日...

  • 火凤凰

    涅槃才得重生。

网友评论

      本文标题:使用finalize让对象涅槃重生

      本文链接:https://www.haomeiwen.com/subject/kjoghctx.html