java系列14:垃圾回收机制

1、因为代码中给对象实例设置为null值,或者在代码运行一段时间后,没有再给当前实例完成相应实例化。这样,引用的实例会越来越多,最终实例占据的内存空间超过内存的容量,导致内存溢出。
2、如果有栈区实例引用在一段时间以后,没有通过new关键字在堆区开辟实际的空间存放数据,JVM会自动从内存中回收栈区的引用。

垃圾回收机制的缺点:效率低下。

例:

java系列14:垃圾回收机制_第1张图片
// Person.java
package test;

public class Person {
    // 垃圾回收时,会调用finalize()方法
    @Override
    protected void finalize() throws Throwable {
        System.out.println ("垃圾回收");
    }
}

// TestGC.java
package test;

public class TestGC {
    public static void main(String[] args) {
        new Person();
        System.gc();
    }
}
java系列14:垃圾回收机制_第2张图片
运行结果

你可能感兴趣的:(java系列14:垃圾回收机制)