Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中两个不同类中需要declare gc()方法_Java_Garbage Collection_Jvm - Fatal编程技术网

java中两个不同类中需要declare gc()方法

java中两个不同类中需要declare gc()方法,java,garbage-collection,jvm,Java,Garbage Collection,Jvm,如果我们调用System.gc(),它会在内部调用Runtime.getRuntime().gc()方法,那么为什么sun需要在System和Runtime这两个类中创建gc方法,而没有System类,我们可以调用Runtime.getRuntime().gc()并请求JVM进行垃圾收集 在两个类中使用gc()方法的原因是什么 请解释您的原因。这只是使用相同方法的方便途径。也可以在API说明中找到: The call System.gc() is effectively equivalent

如果我们调用System.gc(),它会在内部调用Runtime.getRuntime().gc()方法,那么为什么sun需要在System和Runtime这两个类中创建gc方法,而没有System类,我们可以调用Runtime.getRuntime().gc()并请求JVM进行垃圾收集

在两个类中使用gc()方法的原因是什么


请解释您的原因。

这只是使用相同方法的方便途径。也可以在API说明中找到:

 The call System.gc() is effectively equivalent to the call:

   Runtime.getRuntime().gc()

提示:不要手动调用GC。在大多数情况下,这是一个坏主意。

我认为,如果对象符合垃圾收集的条件,那么JVM将在内部调用gc()方法。System类包含静态gc()方法,因此jvm可以使用类名(即System.gc())轻松调用此方法。但运行时类包含非静态gc()方法,jvm不可能直接调用此方法,因为它需要对象来调用非静态方法


方法内部调用Runtime.getRuntime.gc()

System.gc()
Runtime.getRuntime().gc()短@Sotirios Delimanolis-你能详细说明你的想法吗answer@Joachim伊萨克森——我知道答案。但我想知道为什么
System.gc()
是11个字符的代码<代码>Runtime.getRuntime().gc()更多。@Joachim Isaksson、@Sotirios Delimanolis、@Peter Lawrey、@Kevin Panko、@Simon MᶜKenzie首先我读到system.gc()和runtime.gc()之间的区别,这还不足以回答这个问题