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

การใช้คลาส Cleaner ใน Java 9 คืออะไร?


อ็อบเจ็กต์ที่สร้างขึ้นระหว่างการทำงานของโปรแกรมจะถูกลบออกโดยอัตโนมัติโดย Garbage Collector (จีซี). เมื่ออ็อบเจ็กต์ไม่ได้อ้างอิงโดยเธรดใดๆ และเมื่อ JVM ระบุว่าไม่สามารถเข้าถึงอ็อบเจ็กต์นี้ได้ ก็มีสิทธิ์ได้รับขยะสะสม

คลาส Object มี finalize() วิธีการซึ่งถูกเรียกโดยอัตโนมัติโดย GC ก่อนที่จะพยายามลบวัตถุออกจากกอง ใน Java 9 , finalize() เมธอด เลิกใช้แล้ว และคลาสใหม่ java.lang.ref.Cleaner เพิ่มในการจัดการการรวบรวมขยะ วัตถุของ ตัวทำความสะอาด คลาสจะได้รับการแจ้งเตือนโดยอัตโนมัติเมื่ออ็อบเจ็กต์มีสิทธิ์ในการรวบรวมขยะ วัตถุที่กำลังรวบรวมขยะจะต้อง ลงทะเบียนกับวัตถุที่สะอาดกว่า โดยใช้ register() วิธีการ

ตัวอย่าง

<ก่อนหน้า>นำเข้า java.lang.ref.Cleaner; CleanerTest คลาสสาธารณะ { โมฆะคงที่สาธารณะหลัก (สตริง args []) { System.out.println ("TutorialsPoint"); น้ำยาทำความสะอาด Cleaner =Cleaner.create(); ถ้า (จริง) { CleanerTest myObject =ใหม่ CleanerTest (); ทำความสะอาดลงทะเบียน (myObject State()ใหม่ ); // ตัวทำความสะอาดทะเบียน } สำหรับ (int i =1; i <=10000; i++) { สตริง [] largeObject =สตริงใหม่ [1000]; ลอง { Thread.sleep(1); } จับ (InterruptedException จ) { e.printStackTrace (); } } } คลาสสแตติกส่วนตัว State ใช้ Runnable { public void run () { System.out.print ("Cleaning action"); } }}

ผลลัพธ์

การดำเนินการ TutorialsPointCleaning