Когда я компилирую и запускаю следующую очень простую программу Java с использованием OpenJDK 11 (дистрибутив Zulu в Windows 10):
public class GCTest {
public static void main(String[] args) {
System.out.println("Free memory before garbage collection: " + Runtime.getRuntime().freeMemory());
Runtime.getRuntime().gc();
System.out.println("Free memory after garbage collection: " + Runtime.getRuntime().freeMemory());
}
}
похоже, что сборка мусора уменьшает объем свободной памяти:
Free memory before garbage collection: 266881496
Free memory after garbage collection: 7772200
Этого не происходит, когда я запускаю его с Oracle Java 8:
Free memory before garbage collection: 254741016
Free memory after garbage collection: 255795064
Почему это?