কম্পিউটার

জাভাতে রেফারেন্সের ধরন


যেভাবে ডেটা আবর্জনা সংগ্রহ করা হয় তার উপর ভিত্তি করে চারটি ভিন্ন ধরণের রেফারেন্স রয়েছে৷

  • শক্তিশালী রেফারেন্স
  • দুর্বল রেফারেন্স
  • নরম রেফারেন্স
  • ফ্যান্টম রেফারেন্স

শক্তিশালী রেফারেন্স

এটি রেফারেন্স অবজেক্টের ডিফল্ট প্রকার। সক্রিয় শক্তিশালী রেফারেন্স আছে এমন একটি বস্তু আবর্জনা সংগ্রহ করা যাবে না। এটা সম্ভব তখনই যদি ভেরিয়েবলটি দৃঢ়ভাবে উল্লেখ করা হয় নালকে নির্দেশ করে। আসুন একটি উদাহরণ দেখি −

উদাহরণ

class Demo {
   //Some functionality
}
public class Demo_example{
   public static void main(String[] args){
      Demo my_inst = new Demo();
      my_inst = null;
   }
}

দুর্বল রেফারেন্স

এগুলি রেফারেন্স অবজেক্টের ডিফল্ট ক্লাস নয়, তাই স্পষ্টভাবে নির্দিষ্ট করা দরকার। এটি সাধারণত WeakHashmap এর সাথে ব্যবহার করা হয়, যাতে এন্ট্রি অবজেক্টের রেফারেন্স করা যায়। এই ধরনের দুর্বল রেফারেন্স জাভা ভার্চুয়াল মেশিন দ্বারা বর্জ্য সংগ্রহ চিহ্নিত করা হয়। এই ধরনের রেফারেন্সগুলি 'java.lang.ref.WeakReference' ক্লাস ব্যবহার করে তৈরি করা হয়।

আসুন একটি উদাহরণ দেখি -

উদাহরণ

import java.lang.ref.WeakReference;
class Demo{
   public void display_msg(){
      System.out.println("Hello");
   }
}
public class Demo_sample{
   public static void main(String[] args){
      Demo inst = new Demo();
      inst.display_msg();
      WeakReference<Demo> my_weak_ref = new WeakReference<Demo>(inst);
      inst = null;
      inst = my_weak_ref.get();
      inst.display_msg();
}

আউটপুট

Hello
Hello

ডেমো নামের একটি ক্লাসে 'display_msg' নামে একটি ফাংশন রয়েছে। এই ফাংশনটি একটি প্রাসঙ্গিক বার্তা প্রদর্শন করে। 'Demo_sample' নামের আরেকটি ক্লাসে, প্রধান ফাংশনটি সংজ্ঞায়িত করা হয় এবং ডেমো ক্লাসিসের একটি উদাহরণ তৈরি করা হয়। 'display_msg' ফাংশনটি ইনস্ট্যান্সে বলা হয়। ডেমো ক্লাসিসের একটি দুর্বল রেফারেন্স তৈরি করা হয়েছে, এবং ডেমো ইনস্যাটনে নালকে বরাদ্দ করা হয়েছে, এবং ফাংশনটিকে আবার কল করা হয়েছে। কনসোলে প্রাসঙ্গিক আউটপুট প্রদর্শিত হয়।


  1. জাভাতে চূড়ান্ত কীওয়ার্ড

  2. জাভাতে সুপার কীওয়ার্ড

  3. জাভাতে সমষ্টি

  4. জাভাতে উত্তরাধিকারের ধরন