การรวบรวมขยะใน Java ดำเนินการโดย เธรด daemon เรียกว่า Garbage Collector(GC) แทนที่จะรอจนกว่า JVM จะเรียกใช้ตัวรวบรวมขยะ เราสามารถขอให้ JVM เรียกใช้ตัวรวบรวมขยะได้ ไม่มีการรับประกันว่า JVM จะยอมรับคำขอของเราหรือไม่
ใน Java เราสามารถเรียกตัวรวบรวมขยะด้วยตนเองได้สองวิธี
- โดยใช้คลาสระบบ
- โดยใช้คลาสรันไทม์
โดยใช้คลาสระบบ
ระบบ คลาสมีเมธอดแบบคงที่ gc() ซึ่งใช้เพื่อขอให้ JVM เรียกตัวรวบรวมขยะ
ตัวอย่าง
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");
}
} ผลลัพธ์
Garbage collected
โดยใช้คลาสรันไทม์
รันไทม์ เป็น คลาสเดี่ยว ใน Java และเราสามารถรับวัตถุรันไทม์โดยใช้ getRuntime() กระบวนการ. gc() เมธอดมาจาก รันไทม์ class และเป็นวิธีอินสแตนซ์
ตัวอย่าง
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");
}
} ผลลัพธ์
Garbage collected