ما هي أنواع المراجع في لغة البرمجة جافا

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


مفهوم المراجع في لغة البرمجة جافا

تُعد لغة البرمجة جافا عبارة عن لغة كائنية التوجه (Object Oriented Programming) والتي تسمح للمستخدمين من القيام بإنشاء الكائنات والتعامل معها وكأنها نوع بيانات جديد، حيث يتم إنشاء أي نوع من الكائنات عن طريق استخدام الكلمة المفتاحية (new)، والتي تقوم بدورها بحجز مكان مخصص لهذه الكائنات في الذاكرة (RAM) وتسمى هذه المساحة الخاصة لحجز الكائنات في الذاكرة (Heap).

والمراجع في لغة البرمجة جافا تستخدم للإشارة إلى الكائنات الموجودة في المساحة الخاصة التي تسمى ب (Heap)، وهذه المراجع تشبه إلى حد كبير مفهوم المؤشرات، حيث أن كل برنامج يحتوي على مجموعة من المراجع (References) للكائنات التي يتم تخزينها في الـمساحة (Heap) بحيث يستطيع الوصول إليها من خلال هذه المراجع.

أنواع المراجع في لغة البرمجة جافا

هناك العديد من أنواع المراجع الخاصة بلغة البرمجة جافا، والجدول التالي يحتوي على أهم هذه الأنواع:

المرجعالاستخدام

 المراجع القوية (Strong References)

يعد هذا النوع من أكثر أنواع المراجع استخداماً، حيث أن المرجع القوي يعني أن هذا الكائن مهم جداً حتى يعمل البرنامج بالشكل الصحيح، ومنظف الذاكرة في هذا النوع من المراجع لا يمكنه القيام بإزالة الكائن من المساحة التي تسمى (Heap).

المراجع اللينة (Soft References)

تستخدم هذه المراجع للإشارة للكائنات بليونة، وهذا يعني ذلك أن منظف الذاكرة الخاص بلغة البرمجة جافا قد يزيل الكائن إن لم يكن هناك أي مرجع قوي يشير له حتى وإن كان يوجد مرجع لين يشير له، ويتم إنشاء مرجع لين في لغة البرمجة جافا من خلال الكلاس (Soft Reference)، وتكمن أهمية استخدام هذا النوع من المراجع في عملية حفظ البيانات المؤقتة و الغير الضرورية.

المراجع الضعيفة (Weak References)

تعد هذه المراجع أضعف من المراجع اللينة، وعندما يقوم منظف الذاكرة بعمل ويجد أن أحد الكائنات له مراجع ضعيفة فقط فسيتم إزالته مباشرة، ويتم إنشاء المراجع الليّنة يتم استخدام الكلاس (Weak Reference).
المراجع الوهمية (Phantom References)يستخدم هذا النوع من المراجع فقط لمعرفة متى سيتم إزالة الكائن، ويتم إنشاء هذا النوع من المراجع عن طريق استخدام الكلاس (الكلاس Phantom Reference).

المصدر: Types of References in JavaDifferent Types of References in JavaTypes of References in Java Software Engineering Java


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