ما هي طريقة () finalize في Java وكيفية تجاوزها

Ma Hy Tryqt Finalize Fy Java Wkyfyt Tjawzha



توفر 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.