Difference between system.gc() and runtime.gc()
What is the difference between System.gc()开发者_C百科 and Runtime.gc()?
Both are same. System.gc() is effectively equivalent to Runtime.gc(). System.gc()internally calls Runtime.gc().
The only difference is System.gc() is a class method where as Runtime.gc() is an instance method. So, System.gc() is more convenient.
From looking at the source code: System.gc() is implemented as
Runtime.getRuntime().gc();
So it's just a convenience method.
See the docs
System.gc() is equivalent to Runtime.getRuntime().gc()
Runtime.gc() is a native method where as System.gc() is non - native method which in turn calls the Runtime.gc()
System.gc():
1: It is a class method(static method).
2: Non-Native method.(Code which doesn't directly interacts with Hardware and System Resources).
3: System.gc(), Internally calls Runtime.getRuntime().gc().
Runtime.gc():
1: Instance method.
2: Native method(A programming language which directly interacts with Hardware and System Resources.).
Both are same System.gc() is effectively equivalent to Runtime.gc()
System.gc() internally calls Runtime.gc().
The only difference is :
System.gc() is a class (static) method where as Runtime.gc() is an instance method. So, System.gc() is more convenient.
System.gc()
public final class System extends Object{
public static void gc(){
.
.
Runtime.getRuntime().gc();
}
.
.
}
Runtime.gc()
public class Runtime extends Object{
public void gc(){
// ...
}
.
.
.
}
In the runtime system the gc is instance method but in system method the gc is static .
because of this reason we prefer to use system.gc().
加载中,请稍侯......
精彩评论