آلية عمل محمل الكلاسات في لغة البرمجة جافا Class Loader

اقرأ في هذا المقال


ما هو محمل الكلاسات في لغة البرمجة جافا- Class Loader

عندما يقوم المستخدم بكتابة برنامج باستخدام لغة البرمجة (java) فإنه يتم ترجمتها بواسطة المترجم (Compiler) ليتم الحصول عليها بصيغة ال (class) بطريقة معينة، بحيث تستطيع آلة جافا الافتراضية (Java Virtual Machine) قراءة الكلاس واستخدامه في وقت لاحق، ويتم استخدامه من خلال العديد من الخطوات.

آلية عمل محمل الكلاسات في لغة البرمجة جافا Class Loader:

هناك العديد من الخطوات والمراحل التي يتم من خلالها استخدام محمل الكلاسات وهي:

طلب تحميل الكلاس في لغة البرمجة جافا:

تتم هذه العملية عند أول استخدام للكلاس داخل الكود البرمجي المكتوب بلغة البرمجة جافا، والذي يشمل على الكونستركتور (constructor)، ويعود السبب وراء عدم تحميل آلة جافا الافتراضية (JVM) لجميع الكلاسات عند بداية تشغيل البرنامج هو أن عملية تحميل الكلاس قد تتطلب تنزيل مجموعة من البيانات من شبكة الإنترنت وغيرها من العمليات التي تستغرق وقت والتي تجعل عملية التنفيذ بطيئة، ويتم طلب تحميل الكلاس بشكل يدوي عن طريق استخدام الدالة (()loadclass).

تحميل الكلاس في لغة البرمجة جافا:

عندما تتلقى آلة جافا الافتراضية (JVM)طلب تحميل كلاس معين فإنه يتم استخدام محمل الكلاسات (Class loaders)، حيث يتكون هذا النظام من ثلاثة أنوع من المحملات  وهي:

  • محمل الكلاسات التمهيدي (BootStrap ClassLoader):

ووظيفة عمه الأساسية هي القيام بعملية تحميل الكلاسات الأساسية في لغة البرمجة جافا، ويكون مكتوب باستخدام (Native code) وهذا النوع من المحملات يكون موجود ضمن آلة جافا الافتراضية.

  • محمل الكلاسات الملحق (Extension ClassLoader):

وهو عبارة عن جزء من محمل الكلاسات التمهيدي ووظيفته الأساسية هي القيام بتحميل كلاسات الملحقات الخاصة بآلة جافا الافتراضية.

  • محمل الكلاسات التطبيق (Application ClassLoader):

وهو عبارة عن جزء من  (Extension Class Loader) ووظيفته الأساسية هي القيام بعملية تحميل الكلاسات الموجودة في (class path)، ومن الممكن القوم بإن هذا المحمل هو المسؤول عن القيام بتحميل الكلاسات التي يتم استخدامها من قبل المستخدم  في أثناء كتابة وتنفيذ البرامج.

ربط الكلاس في لغة البرمجة جافا -Linking:

في هذه المرحلة يتم التحقق من أن عملية الترميز مفهومة وواضحة لآلة جافا الافتراضية، حيث يتم تجهيز الكلاس من خلال حجز مساحة للمتغيرات الثابتة في الذاكرة و إعطاء القيم الافتراضية لها، ومن ثم يتم تحميل الكلاسات التي يحتاجها الكلاس المحمل

.

المصدر: Class Loaders in JavaClassLoader in JavaClass loaders


شارك المقالة: