Garbage collection trong Java do daemon thread gọi là Garbage Collector (GC) thực hiện. Thay vì chờ JVM chạy GC, chúng ta có thể yêu cầu JVM chạy GC. Không đảm bảo JVM sẽ chấp nhận yêu cầu.
Trong Java, có hai cách gọi GC thủ công:
- Dùng lớp System
- Dùng lớp Runtime
Dùng lớp System
Lớp System có phương thức static gc() yêu cầu JVM gọi garbage collector.
Ví dụ
public class SystemClassTest {
public static void main(String[] args){
SystemClassTest test = new SystemClassTest();
test = null;
System.gc();
}
public void finalize() {
System.out.println("Garbage collected");
}
}
Kết quả
Garbage collected
Dùng lớp Runtime
Runtime là singleton class, lấy đối tượng runtime bằng getRuntime(). gc() của Runtime là phương thức instance.
Ví dụ
public class RuntimeClassTest {
public static void main(String[] args) {
RuntimeClassTest test = new RuntimeClassTest();
test = null;
Runtime.getRuntime().gc();
}
public void finalize() {
System.out.println("Garbage Collected");
}
}
Kết quả
Garbage collected