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

มีกี่วิธีในการเรียกตัวรวบรวมขยะ (GC) ใน Java?


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