কম্পিউটার

জাভা 9 এ ক্লাস লোডারগুলির পরিবর্তনগুলি কী কী?


সমস্ত জাভা প্রোগ্রাম জাভা ভার্চুয়াল মেশিন (JVM) এ চলে . সংকলনের পরে, একটি জাভা ক্লাস একটি প্ল্যাটফর্মে রূপান্তরিত হয় এবং মেশিন-স্বাধীন বাইটকোড , এবং কম্পাইল করা ক্লাসগুলি .class হিসাবে সংরক্ষণ করা হয় নথি পত্র. যখনই আমরা এটি ব্যবহার করার চেষ্টা করি, ClassLoader মেমরি যে ক্লাস লোড. ক্লাসগুলি জাভা পরিবেশে পরিচিত হয় যখন তাদের নাম দ্বারা উল্লেখ করা হয়। ক্লাস লোডার দ্বারা ক্লাস লোড করা হয়েছে, ক্লাস চলা শুরু হলে, এবং main() পদ্ধতি হল ক্লাস শুরু করার একটি উপায়৷

জাভা 9-এ ক্লাস লোডারের কিছু ছোটখাটো পরিবর্তন আছে:

  • সিস্টেম ক্লাস লোডার Java 9-এ আর নেই, URLClassLoader, বরং এটি একটি অভ্যন্তরীণ শ্রেণী। এটি ডিফল্ট লোডার মডিউলে ক্লাসের জন্য।
  • এক্সটেনশন ক্লাস লোডার একটি প্ল্যাটফর্ম ক্লাস লোডার হিসাবে পুনঃনামকরণ করা হয়েছে৷ . জাভা এসই প্ল্যাটফর্মের সমস্ত ক্লাস প্ল্যাটফর্ম ক্লাস লোডারের মাধ্যমে দৃশ্যমান হতে পারে, এবং জাভা সম্প্রদায় প্রক্রিয়ার অধীনে মডিউলগুলিতেও ক্লাস করা যেতে পারে তবে জাভা এসই প্ল্যাটফর্মের অংশ নয় প্ল্যাটফর্ম ক্লাস লোডারের মাধ্যমেও দৃশ্যমান।
  • অ্যাপ্লিকেশন জাভা এসই প্ল্যাটফর্মের কিছু ক্লাসের প্ল্যাটফর্ম ক্লাস প্ল্যাটফর্ম ক্লাস লোডার দ্বারা সংজ্ঞায়িত করা হয়, অন্যগুলি বুটস্ট্র্যাপ ক্লাস লোডার দ্বারা সংজ্ঞায়িত করা হয় এমন ক্লাস লোডারের উপর নির্ভর করতে পারে না। .
  • যদি বিদ্যমান কোডটি বুটস্ট্র্যাপ ক্লাস লোডারের সাথে প্যারেন্ট ক্লাস লোডার হিসেবে একটি ক্লাস লোডার তৈরি করে, তাহলে প্ল্যাটফর্ম ক্লাস লোডারটিকে অভিভাবক হিসেবে ব্যবহার করার জন্য আমাদের পরিবর্তন করতে হবে।
  • প্ল্যাটফর্ম ক্লাস লোডার এটি URLClassLoader এর একটি উদাহরণ নয়৷ , বরং এটি একটি অভ্যন্তরীণ শ্রেণী।
  • বুটস্ট্র্যাপ ক্লাস লোডার এটি একটি বিল্ট-ইন ক্লাস লোডার JVM এর। যাইহোক, এটি একটি বেস এর মতো সমালোচনামূলক মডিউলগুলির শ্রেণীগুলিকে সংজ্ঞায়িত করে৷ . -Xbootclasspath/a-এর সাথে প্রয়োগ করা অ্যাপ্লিকেশন অথবা null দিয়ে একটি ক্লাস লোডার তৈরি করুন একজন অভিভাবক হিসেবে পরিবর্তন করতে হতে পারে।

উদাহরণ

public class ClassLoaderTest {
   public static void main(String args[]) {
      System.out.println("Class Loader Test");
      ClassLoaderTest test = new ClassLoaderTest();
      try {
         test.showClassLoaders();
      } catch(ClassNotFoundException cnfe) {
         System.out.println(cnfe.getMessage());
      }
   }
   public void showClassLoaders() throws ClassNotFoundException {
      System.out.println("Classloader of this class: " + ClassLoaderTest.class.getClassLoader());
      System.out.println("Classloader of Permission: " + java.sql.SQLPermission.class.getClassLoader());
      System.out.println("Classloader of LinkedList: " + java.util.LinkedList.class.getClassLoader());
      return;
   }
}

আউটপুট

Class Loader Test
Classloader of this class: jdk.internal.loader.ClassLoaders$AppClassLoader@504bae78
Classloader of Permission: jdk.internal.loader.ClassLoaders$PlatformClassLoader@299a06ac
Classloader of LinkedList: null

  1. জাভাতে কনস্ট্রাক্টরের রিটার্ন টাইপ কি?

  2. জাভা কনস্ট্রাক্টর কি?

  3. জাভা 9-এ @অপ্রচলিত টীকা-এর উন্নতি কী?

  4. জাভাতে কার্সার ক্লাসের গুরুত্ব কী?