garbage.java

来自「java编程思想的部分实现」· Java 代码 · 共 57 行

JAVA
57
字号
//:c04:Garbage.java
//Demonstration of the garbage collector and finalization
class Chair
{
	static boolean gcrun=false;
	static boolean f=false;
	static int created=0;
	static int finalized=0;
	int i;
	Chair()
	{
		i=++created;
		if(created==47)
		System.out.println("Created 47");
	}
	public void finalize()
	{
		if(!gcrun)
		{
			//The first time finalize() is called.
			gcrun=true;
			System.out.println("begining to finalaze after "+created+" Chairs have been created");
		}
		if(i==47)
		{
			System.out.println("Finilizing chair # 47 ,"+created+" Setting flag to stop Chair creation");
			f=true;
		}
		finalized++;
		if(finalized>=created)
		System.out.println("All "+finalized+" finalized");
	}
}
public class Garbage
{
	public static void main(String[] args)
	{
		//As long as the flag hasn't been seted ,make chairs and Strings:
		while(!Chair.f)
		{
			new Chair();
			new String("To make up space");
		} 
		System.out.println("After all Chairs have been created:\n"+"total created"+"="+Chair.created+",total finalized="+Chair.finalized);
		//Optional arguments force garbage
		//collection & finalization:
		if(args.length>0)
		{
			if(args[0].equals("gc")||args[0].equals("all"))
			{
				System.out.println("runFinalization()");
				System.runFinalization();
			}
		}
		System.out.println("bye!");
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?