Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราจะเรียกการรวบรวมขยะ (GC) อย่างชัดเจนใน Java ได้อย่างไร


เมื่อไม่มีการอ้างอิงถึงวัตถุอีกต่อไป วัตถุนั้นจะได้รับการสรุปผลและเมื่อการรวบรวมขยะ เริ่มต้นวัตถุที่สรุปแล้วเหล่านี้ รวบรวมสิ่งนี้จะทำโดยอัตโนมัติโดย 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