Какво представлява методът finalize() в Java и как да го замените

Kakvo Predstavlava Metod T Finalize V Java I Kak Da Go Zamenite



Java предоставя на разработчика страхотна функционалност за ефективно управление на системните ресурси. При такъв сценарий „ финализирам() ” влиза в сила методът, който освобождава системните ресурси, преди събирачът на отпадъци да се изпълни за конкретен обект. „Виртуалната машина на Java (JVM)“ обаче позволява извикване на метода „finalize()“ веднъж за обект.

Този блог ще обсъди използването и отмяната на метода „finalize()“.







Какво представлява методът „finalize()“ на Java и как да го замените?

финализирам() ' метод на ' Обект ” се извиква от „Garbage Collector” точно преди да изтрие обекта, който е подходящ за събиране на боклук, за да приложи задачата за почистване.



Синтаксис



защитена празнота финализиране ( ) хвърля Throwable





В този синтаксис „ защитени ” е спецификатор за достъп, който предполага, че този метод може да бъде достъпен само в рамките на класа и производните класове на този клас.

Пример 1: Прилагане на метода “finalize()” в Java



Този пример илюстрира използването на метода „finalize()“:

публичен клас Finalize2 {
защитена празнота финализиране ( ) {
System.out.println ( „Това е методът Finalize!“ ) ;
}
публичен статичен void main ( низ [ ] аргументи ) {
Finalize2 обект = нов Finalize2 ( ) ;
обект = нула;
System.gc ( ) ;
System.out.println ( 'Garbage collector е извикан!' ) ;
} }

В горните кодови редове:

  • Приложете „ финализирам() ” в рамките на класа „Finalize2”, включващ посочения оператор.
  • в „ основен ”, създайте обект от клас чрез конструктора „Finalize2()”.
  • Сега разпределете обект a ' нула ” стойност. Такава е, че когато има „нулева“ стойност, няма препратка и така е подходяща за събиране на боклук.
  • След това приложете „ System.gc () ” за изпълнение на събирача на отпадъци, като по този начин извиква метода „finalize()”.

Изход

Тук може да се провери дали методът „finalize()“ е извикан правилно.

Пример 2: Замяна на метода „finalize()“ на Java

Обект ” отговаря на родителския клас на всички Java класове. Методът „finalize()“, присъстващ в този клас, няма никаква реализация. В дефиницията на клас обаче дейностите по почистване са там. Следователно замяната на този метод води до извършване на дефинираните дейности за почистване:

публичен клас Finalize {
защитена празнота финализиране ( ) хвърля Throwable {
опитвам {
System.out.println ( „Методът finalize() на класа“ ) ;
}
улов ( Може да се хвърля освен ) {
хвърлям освен;
}
накрая {
System.out.println ( „Извикване на метода finalize() на класа Object“ ) ;
супер.финализирам ( ) ;
} }
публичен статичен void main ( низ [ ] аргументи ) хвърля Throwable {
Finalize obj = ново финализиране ( ) ;
об.финализирам ( ) ;
} }

Според горния блок код:

  • Посочете „ финализирам() ” и декларирайте „ Хвърляем ”, съответно изключение.
  • в „ опитвам ”, посочете посоченото изявление и се справете с изключението в „ улов ” блок.
  • в „ накрая ” блок, „ супер ” ключова дума сочи към метода „finalize()” на класа обект. Прилага се в този конкретен блок, за да се гарантира изпълнението на метода „finalize()“, дори ако възникне изключение.
  • в „ основен ”, създайте обект на клас и заменете метода „finalize()” на класа на обекта с метода, посочен/дефиниран в класа „Finalize”.

Изход

При този резултат може да се забележи, че методът „finalize()“ е отменен успешно.

Заключение

финализирам() ” методът се извиква от „Garbage Collector” преди изтриването на обекта и може да бъде заменен с помощта на „ супер ” ключова дума. В този блог се обсъжда използването и отмяната на метода „finalize()“ в Java.