system.gc()和runtime.gc()之间的区别
System.gc()
和Runtime.gc()
之间有什么区别?
两者都是一样的。 System.gc()
实际上等同于Runtime.gc()
。 System.gc()
内部调用Runtime.gc()
。
唯一的区别是System.gc()
是一个类方法,其中Runtime.gc()
是一个实例方法。 所以System.gc()
更方便。
从源代码看: System.gc()
被实现为
Runtime.getRuntime().gc();
所以这只是一个方便的方法。
看文档
System.gc()
等同于Runtime.getRuntime().gc()
Runtime.gc()
是一个本地方法,其中System.gc()
是非本地方法,该方法又调用Runtime.gc()
在运行时系统中,gc是实例方法,但在系统方法中,gc是静态的。
因为这个原因,我们更喜欢使用system.gc()。
System.gc()的:
1:它是一个类方法(静态方法)。
2:非本地方法(不直接与硬件和系统资源交互的代码)。
3:System.gc(),内部调用Runtime.getRuntime()。gc()。
Runtime.gc():
1:实例方法。
2:本地方法(一种直接与硬件和系统资源交互的编程语言)。