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()
を呼び出します
System.gc():
1:クラスメソッド(静的メソッド)です。
2:非ネイティブメソッド。(ハードウェアおよびシステムリソースと直接対話しないコード)。
3:System.gc()、内部的にRuntime.getRuntime()。gc()を呼び出します。
Runtime.gc():
1:インスタンスメソッド。
2:ネイティブメソッド(ハードウェアおよびシステムリソースと直接対話するプログラミング言語)。
ランタイムシステムではgcはインスタンスメソッドですが、システムメソッドではgcは静的です。
このため、system.gc()を使用することを好みます。