ما فائدة المدمر في جافا؟



تتناول هذه المقالة مفهوم التدمير في Java مع أمثلة تبرز أهمية التدمير في Java في أي فئة Java.

أثناء العمل مع دروس في جافا ، يتم استخدام المُنشئين لتهيئة مثيل فئة. يتم تخصيص الذاكرة للكائن باستخدام باني ولكن بعد انتهاء دورة حياة الكائن ولم يعد الكائن قيد الاستخدام ، يجب إلغاء تخصيص الذاكرة وتحريرها. هذا هو المكان الذي يوجد فيه المدمر يأتي في الصورة. في هذه المقالة سوف نتعرف على المدمرات في Java بالترتيب التالي:

ما هو المدمر؟

المدمر هو خاص يتم استدعاؤها تلقائيًا بمجرد انتهاء دورة حياة الكائن. يتم استدعاء المدمر لإلغاء تخصيص الذاكرة وتحريرها. يتم تنفيذ المهام التالية عند استدعاء أداة التدمير.





  • تحرير أقفال التحرير
  • إغلاق كافة اتصالات قاعدة البيانات أو الملفات
  • الافراج عن جميع موارد الشبكة
  • مهام التدبير المنزلي الأخرى
  • استعادة مساحة الكومة المخصصة أثناء عمر الكائن

أدوات التدمير في Java المعروفة أيضًا باسم Finalizers هي غير حتمية. يتم التعامل مع تخصيص وإصدار الذاكرة ضمنيًا بواسطة جامع القمامة في جافا .

الفرق بين متغير وثابت

يجب استدعاء Finalizers في Java بشكل ضمني لأن استدعائها غير مضمون ، على عكس C # finalizers التي يتم استدعاؤها أثناء وقت تشغيل .NET.



دعنا نلقي نظرة على الخصائص الرئيسية للمدمر:

  • التحميل الزائد أو الميراث غير مسموح به
  • لا توجد مواصفات لمعدلات أو معلمات الوصول
  • استدعاء تلقائي وعدم وجود مكالمة صريحة من المستخدم
  • تستخدم في الفصول ولكن ليس في الهياكل
  • يختلف ترتيب الفئة من أكثر الفئات اشتقاقًا إلى أقل فئة مشتقة
  • يُستدعى أيضًا عندما لا يكون مثيل الكائن مؤهلاً للوصول
  • تُستخدم لتحرير الموارد غير المُدارة بدلاً من الموارد المُدارة التي يحتفظ بها الكائن

جامع القمامة

برنامج تجميع القمامة هو برنامج يعمل على آلة جافا الافتراضية لاستعادة الذاكرة عن طريق حذف العناصر التي لم تعد قيد الاستخدام أو أنهت دورة حياتها. يُقال أن الكائن مؤهل لجمع البيانات المهملة إذا وفقط إذا كان الكائن لا يمكن الوصول إليه.

دعونا نحاول فهم كيفية عمل جمع البيانات المهملة في جافا:



جمع البيانات المهملة هو في الأساس عملية تعليم أو تحديد الكائنات التي لا يمكن الوصول إليها وحذفها لتحرير الذاكرة. التنفيذ موجود في JVM ، والشرط الوحيد هو أنه يجب أن يفي بمواصفات JVM. هذه هي الأنواع المختلفة من جامعي القمامة في جافا:

  • جامع القمامة التسلسلي
  • جامع القمامة الموازي / الناتج
  • جامع CMS
  • جامع G1

دعنا نلقي نظرة على بعض مزايا جمع البيانات المهملة في جافا:

  • يقوم تلقائيًا بحذف الكائنات غير المستخدمة التي لا يمكن الوصول إليها لتحرير الذاكرة
  • جمع القمامة يجعل ذاكرة جافا فعالة
  • لا يلزم استدعاؤه صراحةً لأن التنفيذ يعيش في JVM
  • أصبح جمع البيانات المهملة مكونًا مهمًا وقياسيًا للعديد من لغات البرمجة

دعونا نحاول فهم سبب عدم استخدام أدوات التدمير في جافا.

المُنشئ مقابل المُدمِّر: الفرق بين المُنشئ والمُدمِّر

باني مدمر

يستخدم المُنشئ لتهيئة مثيل لفئة

يتم استخدام أداة التدمير لحذف الكائنات أو إتلافها عندما لا تكون قيد الاستخدام

يتم استدعاء المُنشئين عند إنشاء مثيل لفئة

يتم استدعاء المدمرات عندما يتم تدمير كائن أو تحريره

تخصيص الذاكرة

يطلق الذاكرة

التحميل الزائد ممكن

التحميل الزائد غير مسموح به

يسمح لهم بالحجج

لا يمكن تمرير أي وسيطات في أداة التدمير

طريقة Java Finalize ()

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

يتم توريث طريقة Object.finalize () في الكل كائنات جافا . إنه ليس أداة تدمير ولكن يتم استخدامه للتأكد أو توفير أمان إضافي لضمان استخدام الموارد الخارجية مثل إغلاق الملف وما إلى ذلك قبل إيقاف تشغيل البرنامج. يمكنك تسميته باستخدام الطريقة نفسها أو system.runFinalizersOnExit (صواب).

دروس خادم مايكروسوفت SQL للمبتدئين

لا يوصى بشدة باستخدام طريقة finalize () لأنها قد تكون غير آمنة للغاية وفي بعض الحالات يتم استخدامها بشكل غير صحيح.

لنأخذ مثالاً بسيطًا لتوضيح كيف يمكن استخدام الصيغة النهائية () لاستدعاء جامع البيانات المهملة.

الفئة العامة A {public void finalize () رميات Throwable {System.out.println ('Object is destroyed by the Garbage Collector')} العامة الساكنة void main (String [] args) {A test = new A () test = null System.gc ()}}

يقودنا هذا إلى نهاية هذه المقالة حيث تعلمنا عن المدمر في Java. آمل أن تكون واضحًا بشأن كل ما تمت مشاركته معك في هذا البرنامج التعليمي.

إذا وجدت هذه المقالة حول 'Destructor In Java' ذات صلة ، فراجع ملف شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرة في جميع أنحاء العالم.

نحن هنا لمساعدتك في كل خطوة في رحلتك والتوصل إلى منهج مصمم للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطور جافا. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد مثل بيات شتوى & .

إذا صادفت أي أسئلة ، فلا تتردد في طرح جميع أسئلتك في قسم التعليقات في 'Destructor In Java' وسيسعد فريقنا بالإجابة.