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