Różnice pomiędzy final, finally, a finalize

Jednym z pytań pojawiających się podczas rozmowy kwalifikacyjnej na pozycje młodszego programisty jest to, o różnice pomiędzy działaniami słów kluczowych final i finally oraz metody finalize. Funkcjonalności te, wbrew pozorom, poza zbliżonymi nazwami nie mają ze sobą nic wspólnego.

Na poniższym filmie omawiam działanie każdego z nich:

 

Final jest słowem kluczowym, które użyte ze zmienną zamienia ją w stałą. Natomiast użyte wraz z metodą powoduje, iż nie można jej nadpisać. Można również wykorzystać je wraz z klasą – wówczas blokuje ono możliwość dziedziczenia danej klasy.

Finally jest elementem bloku try-catch-finally. Operacje zawarte w tej sekcji zostaną zawsze wykonane – niezależnie czy kod zawarty w sekcji catch zakończył się sukcesem, czy rzucił wyjątkiem.

Finallize jest natomiast metodą z klasy Object, która w teorii miała być wywoływana przed tym, gdy dany obiekt zostanie usunięty z pamięci. W praktyce nie zawsze (albo wręcz z reguły) nie działała w 100%. Obecnie oznaczona jest jako deprecated i nie powinna być używana pod żadnym pozorem.

Jeśli ten post Ci się przydał podziel się nim proszę w swoich social mediach 🙂


Podziel się tym wpisem:

Dodaj komentarz