我对system.exit有点困惑.我从这个链接创建了一些东西.
但我心里有些疑惑.如果我使用系统退出,创建的对象,变量和ect会发生什么.一旦我调用system.exit,一切都会被破坏吗?如果"是"那么为什么我们强制在system.exit()之前进行垃圾收集?如果"否"创建的对象存储在JVM(内存)中多长时间?如果在退出系统后再次运行程序,如果在我调用System.exit()之后它们没有被销毁,前一个对象会发生什么?
谢谢.
据我所知,当我使用System.gc()方法运行垃圾收集时,它将从堆中收集所有未使用和未销毁的对象并清理它.所以当我运行System.gc(); 应该增加JVM的内存.但是当我运行它时,在下面的代码中,结果让我感到困惑.
Runtime rs = Runtime.getRuntime();
System.out.println("Free memory in JVM before Garbage Collection = " +
rs.freeMemory());
rs.gc();
System.out.println("Free memory in JVM after Garbage Collection = " +
rs.freeMemory());
Run Code Online (Sandbox Code Playgroud)
输出是
Free memory in JVM before Garbage Collection = 12184624
Free memory in JVM after Garbage Collection = 12184360
Run Code Online (Sandbox Code Playgroud)
看前值大于后值.
如果我的错误概念或解释我为什么会这样,请纠正我.
谢谢.