如何调用垃圾回收器的方法

System.gc() 或者 Runtime.getRuntime().gc()

gc()作用

提示 Java 虚拟机进行垃圾回收, 该方法被调用之后,由 Java虚拟机自己决定是立即回收还是延迟回收。平时该方法由系统自动调用,不需要人为调用。

public class Person {
    public Person() {
        System.out.println("person被创建了");
    }
    public void finalize() {
        System.out.println("person对象被回收了");
    }
}

未调用GC

// 未调用GC
public static void main(String[] args) {
	Person p = new Person();
	try {
		Thread.sleep(2000);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	p = null;
}

结果:
person被创建了

调用GC

// 调用GC
public static void main(String[] args) {
	Person p = new Person();
	try {
		Thread.sleep(2000);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	p = null;
	System.gc();
}

结果:
person被创建了
person对象被回收了

个人对finalize()的理解

释放对象占用的内存之前会调用该方法,个人理解是给这个对象留遗言的机会,让他死以前可以再做点啥

你可能感兴趣的:(JVM,java,jvm,开发语言)