توفر Java للمطور وظائف رائعة لإدارة موارد النظام بشكل فعال. في مثل هذا السيناريو ، ' إنهاء () يدخل الأسلوب 'حيز التنفيذ الذي يحرر موارد النظام قبل تنفيذ أداة تجميع البيانات المهملة لكائن معين. ومع ذلك ، تسمح 'Java Virtual Machine (JVM)' باستدعاء طريقة 'finalize ()' مرة واحدة لكل كائن.
ستناقش هذه المدونة استخدام وتجاوز طريقة 'finalize ()'.
ما هي طريقة Java 'finalize ()' وكيفية تجاوزها؟
ال ' إنهاء () 'طريقة' هدف 'يتم استدعاء فئة' بواسطة 'Garbage Collector' قبل حذف الكائن المناسب لتجميع البيانات المهملة لتطبيق مهمة التنظيف.
بناء الجملة
محمي الفراغ النهائي ( ) رميات قابلة للرمي
في بناء الجملة هذا ، ' محمي ”هو محدد وصول يشير إلى أنه يمكن الوصول إلى هذه الطريقة داخل الفئة والفئات المشتقة من تلك الفئة فقط.
مثال 1: تطبيق طريقة 'finalize ()' في Java
يوضح هذا المثال استخدام طريقة 'finalize ()':
الفصل العام اللمسات الأخيرة 2 {محمي الفراغ النهائي ( ) {
System.out.println ( 'هذه هي طريقة اللمسات الأخيرة!' ) ؛
}
العامة ثابت الفراغ الرئيسي ( خيط [ ] أرجس ) {
كائن Finalize2 = Finalize2 جديد ( ) ؛
كائن = فارغ ؛
System.gc ( ) ؛
System.out.println ( 'تم استدعاء جامع القمامة!' ) ؛
} }
في سطور الكود أعلاه:
- تطبيق ' إنهاء () 'ضمن الفئة' Finalize2 'التي تشتمل على العبارة المذكورة.
- في ' رئيسي '، قم بإنشاء كائن فئة عبر الباني' Finalize2 () '.
- الآن ، قم بتخصيص كائن ' باطل ' قيمة. إنه عندما يكون لها قيمة 'فارغة' ، فلا يوجد مرجع وبالتالي فهي مناسبة لجمع البيانات المهملة.
- بعد ذلك ، قم بتطبيق ' System.gc () 'لتنفيذ أداة تجميع البيانات المهملة ، وبالتالي استدعاء طريقة' finalize () '.
انتاج |
هنا ، يمكن التحقق من استدعاء طريقة 'finalize ()' بشكل مناسب.
مثال 2: تجاوز طريقة Java 'finalize ()'
ال ' هدف فئة ”تتوافق مع الفئة الأصل لجميع فئات Java. طريقة 'finalize ()' الموجودة في هذه الفئة ليس لها أي تنفيذ. ومع ذلك ، في تعريف الفئة ، توجد أنشطة التنظيف. لذلك ، يؤدي تجاوز هذه الطريقة إلى تنفيذ أنشطة التنظيف المحددة:
الفصل العام وضع اللمسات الأخيرة {محمي الفراغ النهائي ( ) رميات قابلة للرمي {
يحاول {
System.out.println ( 'طريقة () إنهاء الفصل' ) ؛
}
يمسك ( رمي ما عدا ) {
رمي ما عدا
}
أخيراً {
System.out.println ( 'استدعاء طريقة finalize () لفئة الكائن' ) ؛
النهاية الفائقة ( ) ؛
} }
العامة ثابت الفراغ الرئيسي ( خيط [ ] أرجس ) رميات قابلة للرمي {
إنهاء obj = إنهاء جديد ( ) ؛
obj.finalize ( ) ؛
} }
وفقًا لكتلة الكود أعلاه:
- حدد ال ' إنهاء () 'وإعلان' رمي 'استثناء ، على التوالي.
- في ال ' يحاول '، حدد العبارة المذكورة والتعامل مع الاستثناء في' يمسك ' حاجز.
- في ال ' أخيراً 'كتلة' ممتاز 'الكلمة الأساسية تشير إلى طريقة' finalize () 'لفئة الكائن. يتم تطبيقه في هذه الكتلة المحددة لضمان تنفيذ طريقة 'finalize ()' حتى في حالة مواجهة استثناء.
- في ' رئيسي '، قم بإنشاء كائن فئة وتجاوز طريقة' finalize () 'لفئة الكائن بالطريقة المحددة / المحددة في فئة' Finalize '.
انتاج |
في هذه النتيجة ، يمكن ملاحظة أن طريقة 'finalize ()' تم تجاوزها بنجاح.
خاتمة
ال ' إنهاء () 'يتم استدعاء الأسلوب' بواسطة 'Garbage Collector' قبل حذف الكائن ويمكن تجاوزه باستخدام ' ممتاز 'الكلمة الرئيسية. ناقشت هذه المدونة استخدام وتجاوز طريقة 'finalize ()' في Java.