What is the difference between System.gc()
and Runtime.gc()
?
问题:
回答1:
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.
回答2:
From looking at the source code: System.gc()
is implemented as
Runtime.getRuntime().gc();
So it's just a convenience method.
回答3:
See the docs
System.gc()
is equivalent to Runtime.getRuntime().gc()
回答4:
Runtime.gc()
is a native method where as System.gc()
is non - native method which in turn calls the Runtime.gc()
回答5:
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.).
回答6:
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().