开发者

Difference between system.gc() and runtime.gc()

开发者 https://www.devze.com 2023-03-09 11:01 出处:网络
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().

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().

0

精彩评论

暂无评论...
验证码 换一张
取 消