system.gc()出发finalize方法

来源:1-7 垃圾回收开篇

G91

2020-07-14 21:09:15

老师,您好,看了下system.gc()源码应该是不会马上去执行finalize方法的,这里演示是不是有些凑巧了?

写回答

1回答

大目

2020-07-14

您好,System.gc()是显式地建议垃圾收集器:你去打扫下战场吧。

多数情况下,垃圾收集器是很听话的,会触发垃圾回收。

所以,这个例子的代码执行N次,每次都会触发垃圾收集。

=====

PS.您说看了System.gc()的代码,请问是JDK几的版本啊?

不同版本的代码不同,早期代码中System.gc()里面会做一堆的判断,如果判断是true,才会调用Runtime.getRuntime().gc();

而课上用的JDK 8或者JDK 11,System.gc()都是不做任何判断的,直接调用Runtime.getRuntime().gc()

而Runtime.getRuntime().gc(); 是个Native方法了已经……

0

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程

相似问题

回答 1

回答 1

回答 1