เราสามารถเรียกตัวรวบรวมขยะด้วยตนเองใน Java ได้หรือไม่?
เราสามารถเรียกตัวรวบรวมขยะด้วยตนเองใน Java ได้หรือไม่?
Anonim

เก็บขยะ ใน java can ไม่ถูกบังคับ แต่บางครั้งก็ยัง เราเรียก ระบบ. gc () วิธีการอย่างชัดเจน gc () วิธีการเป็นเพียง "คำใบ้" ให้กับ JVM นั้น เก็บขยะ ควร วิ่ง.

นอกจากนี้คุณยังสามารถเรียกตัวรวบรวมขยะด้วยตนเองได้หรือไม่?

คุณสามารถโทรหา Garbage Collector อย่างชัดเจน แต่ JVM ตัดสินว่า ถึง ประมวลผล เรียก หรือไม่. ตามหลักการแล้ว คุณ ไม่ควรเขียนโค้ดขึ้นอยู่กับ เรียกคนเก็บขยะ . JVM ภายในใช้อัลกอริทึมบางอย่าง ถึง ตัดสินใจเมื่อ ถึง ทำสิ่งนี้ เรียก.

ทราบด้วยว่าวิธีเรียกตัวรวบรวมขยะต่างกันอย่างไร สิ่งสำคัญคือต้องเข้าใจตัวรวบรวมขยะแต่ละประเภทและใช้งานอย่างถูกต้องตามแอปพลิเคชัน

  • เก็บขยะแบบอนุกรม ตัวรวบรวมขยะแบบอนุกรมทำงานโดยเก็บเธรดแอปพลิเคชันทั้งหมดไว้
  • เครื่องเก็บขยะแบบขนาน
  • เครื่องเก็บขยะ CMS
  • G1 เก็บขยะ
  • ตัวเลือก JVM การเก็บขยะ

นอกเหนือจากข้างต้น คุณจะเรียกตัวรวบรวมขยะใน Java ได้อย่างไร

มีสองวิธีที่จะทำ:

  1. การใช้ระบบ. เมธอด gc(): คลาสระบบมีเมธอดแบบสแตติก gc() สำหรับขอให้ JVM เรียกใช้ Garbage Collector
  2. การใช้รันไทม์ รับรันไทม์ () เมธอด gc(): คลาสรันไทม์อนุญาตให้แอปพลิเคชันเชื่อมต่อกับ JVM ที่แอปพลิเคชันทำงานอยู่

ตัวรวบรวมขยะใน Java คืออะไร?

เก็บขยะ เป็นโปรแกรมที่จัดการหน่วยความจำโดยอัตโนมัติ โดยจะจัดการ de-allocation ของอ็อบเจ็กต์โดย Java แทนที่จะเป็นโปรแกรมเมอร์ เมื่อไม่มีการอ้างอิงถึงวัตถุ จะถือว่าไม่จำเป็นอีกต่อไป และหน่วยความจำที่ครอบครองโดยวัตถุนั้นสามารถเรียกคืนได้

แนะนำ: