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 🙂