কম্পিউটার

জাভাতে বিচ্ছিন্ন দ্বীপ


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

বিচ্ছিন্নতার দ্বীপ কী?

যখন দুটি বস্তু '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

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


  1. HTML DOM অ্যাঙ্কর অবজেক্ট

  2. একটি কনস্ট্রাক্টর জাভাতে একটি ব্যতিক্রম নিক্ষেপ করতে পারেন?

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

  4. কীভাবে জাভা অবজেক্টকে JSON এ রূপান্তর করবেন