Co to jest metoda finalize() w Javie i jak ją zastąpić

Co To Jest Metoda Finalize W Javie I Jak Ja Zastapic



Java zapewnia programistom doskonałą funkcjonalność do efektywnego zarządzania zasobami systemowymi. W takim scenariuszu „ sfinalizować() ” wchodzi w życie, która zwalnia zasoby systemowe, zanim moduł wyrzucania elementów bezużytecznych wykona się dla określonego obiektu. „Wirtualna maszyna Java (JVM)” umożliwia jednak wywołanie metody „finalize()” raz na obiekt.

W tym blogu omówimy używanie i zastępowanie metody „finalize()”.







Co to jest metoda Java „finalize()” i jak ją zastąpić?

sfinalizować() „metoda” Obiekt ” jest wywoływana przez „Garbage Collector” tuż przed usunięciem obiektu, który nadaje się do odśmiecania, aby zastosować zadanie czyszczenia.



Składnia



chroniony nieważne sfinalizować ( ) rzuca Możliwość rzucania





W tej składni „ chroniony ” to specyfikator dostępu, który sugeruje, że dostęp do tej metody można uzyskać tylko w obrębie klasy i klas pochodnych tej klasy.

Przykład 1: Zastosowanie metody „finalize()” w Javie



Ten przykład ilustruje wykorzystanie metody „finalize()”:

klasa publiczna Finalizuj2 {
chroniony nieważne sfinalizować ( ) {
System.out.println ( „To jest metoda Finalize!” ) ;
}
public static void main ( Strunowy [ ] argumenty ) {
Finalize2 obiekt = nowy Finalize2 ( ) ;
obiekt = null;
System.gc ( ) ;
System.out.println ( „Garbage collector jest wywoływany!” ) ;
} }

W powyższych liniach kodu:

  • Aplikować ' sfinalizować() ” w ramach klasy „Finalize2” zawierającej deklarację.
  • W ' główny ”, utwórz obiekt klasy za pomocą konstruktora „Finalize2()”.
  • Teraz przydziel obiektowi „ zero ' wartość. Jest taki, że gdy ma wartość „null”, nie ma odniesienia, więc nadaje się do wyrzucania elementów bezużytecznych.
  • Następnie zastosuj „ System.gc () ”, aby uruchomić moduł wyrzucania elementów bezużytecznych, wywołując w ten sposób metodę „finalize()”.

Wyjście

Tutaj można zweryfikować, czy metoda „finalize()” jest prawidłowo wywoływana.

Przykład 2: Nadpisywanie metody „finalize()” języka Java

Obiekt ” odpowiada klasie nadrzędnej wszystkich klas Java. Obecna w tej klasie metoda „finalize()” nie ma żadnej implementacji. Jednak w definicji klasy istnieją czynności porządkowe. W związku z tym zastąpienie tej metody skutkuje wykonaniem zdefiniowanych czynności porządkowych:

klasa publiczna Finalizuj {
chroniony nieważne sfinalizować ( ) rzuca Możliwość rzucania {
próbować {
System.out.println ( „Metoda finalize() klasy” ) ;
}
złapać ( Do rzucania z wyjątkiem ) {
rzucać z wyjątkiem;
}
Wreszcie {
System.out.println ( „Wywoływanie metody finalize() klasy Object” ) ;
super.finalizuj ( ) ;
} }
public static void main ( Strunowy [ ] argumenty ) rzuca Możliwość rzucania {
Finalize obj = new Finalize ( ) ;
obiekt.finalizować ( ) ;
} }

Zgodnie z powyższym blokiem kodu:

  • Określić ' sfinalizować() ” i zadeklaruj „ Możliwość rzucania ” wyjątek, odpowiednio.
  • W ' próbować ”, określ podaną instrukcję i zajmij się wyjątkiem w bloku „ złapać ' blok.
  • W ' Wreszcie „blok”, „ Super ” wskazuje na metodę „finalize()” klasy obiektu. Jest on stosowany w tym konkretnym bloku, aby zapewnić wykonanie metody „finalize()” nawet w przypadku napotkania wyjątku.
  • W ' główny ”, utwórz obiekt klasy i zastąp metodę „finalize()” klasy obiektu metodą określoną/zdefiniowaną w klasie „Finalize”.

Wyjście

W tym wyniku można zauważyć, że metoda „finalize()” została pomyślnie zastąpiona.

Wniosek

sfinalizować() ” jest wywoływana przez „Garbage Collector” przed usunięciem obiektu i może być nadpisana za pomocą „ Super słowo kluczowe. W tym blogu omówiono używanie i zastępowanie metody „finalize()” w Javie.