การรวบรวมขยะใน 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