⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 finalizetest.java

📁 java是一种面向对象程序的语言,我这里介绍了有关java课件的许多事例,它能帮助刚入门的人
💻 JAVA
字号:
//: FinalizeTest.java

//package g3ds.joop.ch4;

public class FinalizeTest {
	public static void main(String[] args)  {
		for(int i=0; i<10;i++){
			//创建一系列Seed对象,
			//因为这些对象并不被引用,一经创建就成为事实上的"垃圾"
			new Seed();	
		}
		//输出创建对象总数信息
		System.out.println(Seed.gcount+" instances are created.");
		
		//获得当前的Runtime对象
		Runtime rt=Runtime.getRuntime();
		
		//输出创建对象后当前机器的可用内存及内存总数情况
		System.out.println("Memory before Garbage Collection:"+
			rt.freeMemory()+"/"+rt.totalMemory());
		
		//请求垃圾回收
		rt.gc();
		//或者
		//System.gc();//相当于Runtime.getRuntime().gc();
		
		/***由于垃圾收集程序是一个优先级最低的线程,
			启动时机不确定,因此以下的输出结果不一定一样***/
		//输出调用垃圾收集程序以后被清除的对象总数
		System.out.println(Seed.fcount+" instances are killed.");
		//输出调用垃圾收集程序以后当前机器的可用内存及内存总数情况
		System.out.println("Memory after Garbage Collection:"+
			rt.freeMemory()+"/"+rt.totalMemory());
		
		System.exit(0);
	}
} 

class Seed{
	//gcount用来记录创建的实例总数
	static int gcount=0;
	//fcount用来记录已被清除的实例总数
	static int fcount=0;
	
	public Seed(){
		//创建实例时gcount自增1
		gcount++;
		
		//显示所创建实例的信息
		System.out.println("Instance:"+this.toString()+" instances are created.");
	}
	
	protected void finalize() throws Throwable{
		//调用父类的finalize方法
		super.finalize();
		
		//清除实例时fcount自增1
		fcount++;
		
		//显示被清除实例的信息
		System.out.println("Instance:"+this.toString()+"  instances are killed.");
	}
}

⌨️ 快捷键说明

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