首页 > 编程语言 > 详细

【ThinkingInJava】4、关于finalize()的调用

时间:2015-04-13 18:56:10      阅读:273      评论:0      收藏:0      [点我收藏+]
/**
* 书本:《Thinking In Java》
* 功能:关于finalize()的调用
* 文件:TerminationCondition.java
* 时间:2014年10月6日17:49:09
* 作者:cutter_point
*/

package Lesson5InitializationAndCleanUp;

class Book
{
	boolean checkedOut=false;	//检验是否已经是知道的
	Book(boolean checkOut)	//构造函数
	{
		checkedOut=checkOut;	//初始化
	}
	//这里定义一个方法
	void checkIn()
	{
		checkedOut=false;	//查找出来定义为假
	}
	
	//当程序结束被垃圾回收的时候,调用默认调用这个
	protected void finalize()		//继承自Object
	{
		if(checkedOut)	//如果被检测出来了
		{
			System.out.println("错误:检测出来!");
		}
		else	//没有检测出来
		{
			System.out.println("这个已经被签入");
		}
	}
}

//主函数
public class TerminationCondition 
{
	public static void main(String [] args)
	{
		Book novel=new Book(true);	//这是还没有被回收的
		novel.checkIn();	//改为false
		new Book(true);	//匿名构造一个对象
		new Book(false);
		System.gc();	//回收垃圾
	}
}


//从结果上看,只出来了            这个被回收了! 和      错误:检测出来! 
//说明这个只有匿名对象创建的时候才会调用finalize



输出结果:

这个已经被签入
错误:检测出来!







【ThinkingInJava】4、关于finalize()的调用

原文:http://blog.csdn.net/cutter_point/article/details/45029563

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!