Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Java
Javaeasy

Co oznacza `final` dla zmiennej, metody i klasy?

Tagi
#final#inheritance#java-basics
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

`final` zmienna nie może być ponownie przypisana, `final` metoda nie może być nadpisana, a `final` klasa nie może być dziedziczona. (To nie czyni obiektu automatycznie niemutowalnym.)

Odpowiedź zaawansowana

Głębiej

`final` oznacza „nie można zmienić w tym wymiarze”, ale sens zależy od użycia.

  • `final` zmienna lokalna / parametr: nie możesz przypisać nowej referencji.
  • `final` pole: musi dostać wartość raz (konstruktor/inicjalizer). Referencja nie zmieni się, ale obiekt może być mutowalny.
  • `final` metoda: nie da się jej nadpisać (stabilność/security API).
  • `final` klasa: brak dziedziczenia (np. `String`).

Uwaga o współbieżności

Pola `final` mają specjalne gwarancje widoczności po konstrukcji (przy poprawnej publikacji obiektu). Dlatego obiekty niemutowalne z final fields są łatwiejsze w użyciu.

Przykład

final List<String> xs = new ArrayList<>();
xs.add("a");      // ok (mutacja obiektu)
// xs = new ArrayList<>(); // nie ok (reassign)

Typowe pułapki

  • Mylenie `final` referencji z niemutowalnością.
  • Traktowanie `final` jako thread-safety (pomaga, ale nie czyni mutable state bezpiecznym).

Powiązane pytania

Java
Czym są sealed classes w Javie i po co się ich używa?
#java#sealed#inheritance
JavaScript
Wyjaśnij dziedziczenie prototypowe w JavaScript.
#prototypes#inheritance