প্রোগ্রাম এক্সিকিউশনের সময় তৈরি করা একটি অবজেক্ট স্বয়ংক্রিয়ভাবে গার্বেজ কালেক্টর দ্বারা সরানো হয় (জিসি)। যখন একটি বস্তু কোনো থ্রেড দ্বারা উল্লেখ করা হয় না এবং যখন JVM নির্ধারণ করে যে এই বস্তুটি অ্যাক্সেস করা যাবে না, তখন এটি আবর্জনা সংগ্রহের জন্য যোগ্য হতে পারে।
অবজেক্ট ক্লাসে একটি ফাইনালাইজ() আছে পদ্ধতি, যা স্বয়ংক্রিয়ভাবে GC দ্বারা ডাকা হয় এটি গাদা থেকে বস্তু অপসারণ করার চেষ্টা করার আগে। Java 9-এ , চূড়ান্ত করা() পদ্ধতি অবঞ্চিত করা হয়েছে এবং একটি নতুন ক্লাস java.lang.ref.Cleaner আবর্জনা সংগ্রহ ব্যবস্থাপনায় যোগ করা হয়েছে। ক্লিনার এর একটি বস্তু কোনো বস্তু আবর্জনা সংগ্রহের জন্য যোগ্য হয়ে গেলে ক্লাস স্বয়ংক্রিয়ভাবে অবহিত হয়। যে বস্তুটি আবর্জনা সংগ্রহ করা হচ্ছে সেটিকে ক্লিনার অবজেক্টের সাথে নিবন্ধিত করতে হবে রেজিস্টার() ব্যবহার করে পদ্ধতি।
উদাহরণ
import java.lang.ref.Cleaner; public class CleanerTest { public static void main(String args[]) { System.out.println("TutorialsPoint"); Cleaner cleaner = Cleaner.create(); if(true) { CleanerTest myObject = new CleanerTest(); cleaner.register(myObject, new State()); // register cleaner } for(int i = 1; i <= 10000; i++) { String[] largeObject = new String[1000]; try { Thread.sleep(1); } catch(InterruptedException e) { e.printStackTrace(); } } } private static class State implements Runnable { public void run() { System.out.print("Cleaning action"); } } }
আউটপুট
TutorialsPoint Cleaning action