เมื่อไม่มีการอ้างอิงถึงวัตถุอีกต่อไป วัตถุนั้นจะได้รับการสรุปผลและเมื่อการรวบรวมขยะ เริ่มต้นวัตถุที่สรุปแล้วเหล่านี้ รวบรวมสิ่งนี้จะทำโดยอัตโนมัติโดย JVM . เราสามารถเรียกการรวบรวมขยะโดยตรงแต่ไม่รับประกันว่า GC จะเริ่มดำเนินการทันที
เราสามารถเรียก ขยะ คอลเลกชัน อย่างชัดเจนในสองวิธี
- วิธี System.gc()
- เมธอด Runtime.gc()
The java.lang. Runtime.freeMemory() วิธีคืนค่าจำนวนหน่วยความจำว่างใน Java Virtual Machine (JVM) . เรียก gc() วิธีอาจส่งผลให้เพิ่มค่าที่ส่งคืนโดย freeMemory .
ตัวอย่าง
<ก่อน> GarbageCollectionTest คลาสสาธารณะ { โมฆะคงสาธารณะหลัก (สตริง args []) { System.out.println (Runtime.getRuntime ().freeMemory ()); สำหรับ (int i =0; i <=100000; i ++) { Double d =ใหม่ Double (300); } System.out.println(Runtime.getRuntime().freeMemory()); System.gc(); System.out.println(Runtime.getRuntime().freeMemory()); }}ผลลัพธ์
156486321327347215970072