Разница между system.gc() и runtime.gc() в Java
Типичный алгоритм сбора мусора (GC) в Java идентифицирует мусор, перемещая все ненужные объекты в куче и предполагая, что любой объект, который не был посещен, должен быть мусором. Вызов одного из методов gc() не приводит к тому, что сбор мусора также происходит; это только указывает на JVM, что теперь может быть хорошим временем для сбора мусора.
System.gc() используется для вызова сборщика мусора, и при вызове сборщик мусора запускается для восстановления неиспользуемого пространства памяти. Он попытается освободить память, занятую отброшенными объектами. System.gc() является статическим методом, поэтому его немного удобнее использовать. Вызов этого может привести к ненужным проблемам производительности для вашего приложения, и на самом деле не гарантируется фактическая реализация коллекции. Фактически можно отключить явное System.gc() через аргумент Java -XX: + DisableExplicitGC. Спецификация Java Language Specification не гарантирует, что JVM запустит GC при вызове System.gc().
runtime.gc()
Класс Java Runtime используется для взаимодействия с средой выполнения Java. Метод Java.lang.Runtime.gc() запускает сборщик мусора. Вызов этого метода предполагает, что JVM (виртуальная машина Java) тратит усилия на повторное использование неиспользуемых объектов, чтобы сделать память, которую они в настоящее время занимают, для быстрого повторного использования. Когда управление возвращается из вызова метода, виртуальная машина приложила все усилия для утилизации всех отброшенных объектов.
system.gc() И runtime.gc()
Оба они одинаковы. Нет разницы между System.gc() и Runtime.gc(). System.gc() внутренне вызывает Runtime.gc(). Единственное различие заключается в том, что System.gc() является методом класса, тогда как Runtime.gc() является методом экземпляра. Таким образом, System.gc() более удобен. Кроме того, Runtime.gc() является нативным методом, тогда как System.gc() является неродным методом, который, в свою очередь, вызывает Runtime.gc()
Источник: http://net-informations.com/Java/cJava/gc.htm