1. 程式人生 > >finalize()方法和System.gc()方法的功能

finalize()方法和System.gc()方法的功能

package trkj;

//此類說明了 finalize 關鍵字以及 System.gc() 的作用
/*
finalize 類似 c++中解構函式,表示物件即將消亡時,呼叫此方法
gc() 方法表示把拉級回收器啟動,把拉圾收走
*/

public class Person {

	private String name;
	private int age;

	public Person() {
	}

	public Person(String name) {
		this.name = name;
	}

	public Person(String name, int age) {
		this(name);
		this.age = age;
	}

	// 每個類裡面都有finalize方法,和構造方法功能相反,一個是物件產生時呼叫,一個是物件消亡時呼叫
	public void finalize() {
		System.out.println("開始清理物件...");
	}

	public static void main(String[] args) {
		// 下面三個物件一產生即成為拉圾
		new Person();
		new Person();
		new Person();
		
		/*new Person().finalize();
		
		Person person = new Person();
		person.finalize();*/
		
		
		// 如果不加上下面這句,以上產生的三個物件雖成為拉圾,但不一定馬上就會啟用拉圾回收機制把拉圾回收走
		// 所以就可能看不到 finalize 方法內部執行的效果
		System.gc();
	}

}