码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-13 18:56:44      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:java   java编程思想   finalize   

/**
* 书本:《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()的调用

标签:java   java编程思想   finalize   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!