system.gc ( ) 可用于垃圾回收
当使用system.gc ( ) 回收某个对象所占用的内存之前,通过要求程序调用适当方法来清理资源,在没有明确指定资源清理的情况下, java提高了默认机制来清理该对象的资源,调用 object类的finalize()方法。 finalize( )方法的作用是 释放一个对象占用的内存空间时,会被JVM调用 , 而子类重写该方法,就可以清理对象占用的资源,该方法没有链式调用 ,所以必须手动实现
从程序的运行结果可以看出 ,执行system.gc ( ) 前 ,系统会自动调用 finalize( );方法 清除对象占有的资源,通过 super .finalize ( ) 方式可以实现从下到上的finalize ()方法的调用 ,即先释放自己的资源 ,再去释放父类的资源
但是, 不要在程序的过程中 频繁的调用垃圾回收
因为每次执行垃圾回收 ,JVM都会强制启动垃圾回收器运行,这会耗费更多的系统资源, 会与正常的java程序运行争抢资源, 只有在执行大量的对象的释放,才调用垃圾回收最好