System.gc()的理解
package com.atguigu.java; /** * @author shkstart shkstart@126.com * @create 2020 14:49 */ public class SystemGCTest { public static void main(String[] args) { new SystemGCTest(); System.gc();//提醒jvm的垃圾回收器执行gc,但是不确定是否马上执行gc //与Runtime.getRuntime().gc();的作用一样。 System.runFinalization();//强制调用使用引用的对象的finalize()方法 } @Override protected void finalize() throws Throwable { super.finalize(); System.out.println("SystemGCTest 重写了finalize()"); } }
package com.atguigu.java; /** * @author shkstart shkstart@126.com * @create 2020 14:57 */ public class LocalVarGC { public void localvarGC1() { byte[] buffer = new byte[10 * 1024 * 1024];//10MB System.gc(); } public void localvarGC2() { byte[] buffer = new byte[10 * 1024 * 1024]; buffer = null; System.gc(); } public void localvarGC3() { { byte[] buffer = new byte[10 * 1024 * 1024]; } System.gc(); } public void localvarGC4() { { byte[] buffer = new byte[10 * 1024 * 1024]; } int value = 10; System.gc(); } public void localvarGC5() { localvarGC1(); System.gc(); } public static void main(String[] args) { LocalVarGC local = new LocalVarGC(); local.localvarGC5(); } }