ClassLoader

জাভা JVM এর ক্লাসলোডার সম্পর্কে বিস্তারিত ব্যাখ্যা করছি:

ক্লাসলোডার কি?

ক্লাসলোডার হল জাভা রানটাইম এনভায়রনমেন্টের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ যা .class ফাইলগুলিকে JVM এর মেমরিতে লোড করে। এটি জাভা প্রোগ্রাম রান করার সময় ডায়নামিক ক্লাস লোডিং এর জন্য ব্যবহৃত হয়।

ক্লাসলোডারের প্রকারভেদ:

১. বুটস্ট্র্যাপ ক্লাসলোডার (Bootstrap Class Loader):

  1. এই ক্লাসলোডারটি C++ দিয়ে লেখা এবং এটি JVM এর সিস্টেম ক্লাসপাথ থেকে ক্লাস লোড করে।
  2. এটি JVM এর কোর ক্লাসগুলি লোড করে (rt.jar ফাইল থেকে)
  3. JDK এর বেসিক ক্লাসগুলি যেমন java.lang প্যাকেজের ক্লাসগুলি এর মাধ্যমে লোড হয়

২. এক্সটেনশন ক্লাসলোডার (Extension Class Loader):

  1. jre/lib/ext ডিরেক্টরিতে থাকা জাভা এক্সটেনশন ক্লাসগুলি লোড করে

৩. সিস্টেম/অ্যাপ্লিকেশন ক্লাসলোডার (System/Application Class Loader):

  1. ক্লাসপাথে থাকা ইউজার ডিফাইনড ক্লাসগুলি লোড করে

জাভা ভার্চুয়াল মেশিন (JVM) এ ক্লাস লোডিংয়ের পরে লিঙ্কিং ফেজে তিনটি প্রধান ধাপ থাকে: ভেরিফিকেশন (Verification), প্রিপেয়ারেশন (Preparation), এবং রেজলভেশন (Resolution)। চলুন এগুলো বিস্তারিতভাবে দেখি।

১. ভেরিফিকেশন (Verification)