কম্পিউটার টিউটোরিয়াল

জাভাতে আইল্যান্ড অফ আইসোলেশন (Island of Isolation)


একটি অবজেক্ট ব্যবহার করার পর, এটি গার্বেজ কলেক্টর ক্লাস ব্যবহার করে মেমরি থেকে ডি-অ্যালোকেট করা হয়। অবজেক্টগুলো ধ্বংস করা হয় এই ভিত্তিতে যে সেই অবজেক্টের কোনো রেফারেন্স উপস্থিত নেই। গার্বেজ কলেক্টর ক্লাস সেই অবজেক্টের ওপর 'finalize' ফাংশন কল করে যা ধ্বংস করা প্রয়োজন।

আইল্যান্ড অফ আইসোলেশন কী?

যখন দুটি অবজেক্ট 'a', এবং 'b' একে অপরকে রেফারেন্স করে, এবং সেগুলো অন্য কোনো অবজেক্ট দ্বারা রেফারেন্স করা হয় না, এটি আইল্যান্ড অফ আইসোলেশন বলা হয়।

এটি অবজেক্টের একটি গোষ্ঠী যা পরস্পর রেফারেন্স করে কিন্তু অন্যান্য অ্যাপ্লিকেশনের অন্যান্য অবজেক্টها দ্বারা রেফারেন্স করা হয় না।

নোট - একটি একক অনরেফারেন্সড অবজেক্টও আইল্যান্ড অফ আইসোলেশন।

একটি উদাহরণ নিচে দেখানো হলো:

উদাহরণ

public class Demo{    Demo i;    public static void main(String[] args){       Demo my_ob_1 = new Demo();       System.out.println("Demo object one has been created");       Demo my_ob_2 = new Demo();       System.out.println("Demo object two has been created");       my_ob_1.i = my_ob_2;       my_ob_2.i = my_ob_1;       my_ob_1 = null;       my_ob_2 = null;       System.gc();    }    @Override    protected void finalize() throws Throwable{       System.out.println("The finalize method has been called on the object");    } }

আউটপুট

Demo object one has been created Demo object two has been created The finalize method has been called on the object The finalize method has been called on the object

Demo ক্লাসে main ফাংশন আছে। এখানে, Demo ক্লাসের টাইপের একটি ভেরিয়েবল তৈরি করা হয়েছে। Demo ক্লাসের একটি ইনস্ট্যান্স তৈরি করা হয়েছে এবং দ্বিতীয় অবজেক্টটি প্রথম অবজেক্টের Demo অবজেক্টে অ্যাসাইন করা হয়েছে। একই কাজ দ্বিতীয় অবজেক্টের জন্যও করা হয়েছে। এখন, এই দুটি অবজেক্ট null হিসেবে অ্যাসাইন করা হয়েছে এবং 'System.gc' ফাংশন কল করা হয়েছে। এখন, 'finalize' ফাংশন ওভাররাইড করা হয়েছে।

  1. HTML DOM Anchor অবজেক্ট: হাইপারলিংক নিয়ন্ত্রণ

  2. জাভাতে কনস্ট্রাক্টর কি এক্সেপশন থ্রো করতে পারে?

  3. জাভাতে পলিমরফিজম

  4. জাভা POJO কে JSON-এ কনভার্ট করা: Jackson এবং Gson ব্যবহার করে