字节二面:System.gc() 和 Runtime. getRuntime(). gc()会做什么事情?
#每天一道面试题# 61
system.gc 和 runtime. getRuntime(). gc() 会做些什么事?
System.gc() 在内部调用 Runtime.gc()。
硬要说区别的话 Runtime.gc() 是 native method。
而 System.gc() 是非 native method,它依次调用 Runtime.gc();调用gc方法在默认情况下,会显示触发full gc,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。
system.gc 调用附带一个免责声明,无法保证垃圾收集器的调用。即gc()函数的作用只是提醒虚拟机,程序员希望进行一次垃圾回收。但是这次回收不能保证一定进行,具体什么时候回收取决于jvm。如果每次调用gc方法后想让gc必须执行,可以追加调用system. runFinalization方法。
















