Pytania rekrutacyjne z Javy: 20 pytań dla juniora i mida, także ze Spring Boot

· Zaktualizowano · · 5 min czytania

W skrócie: na rozmowie z Javy rzadko pytają o definicje z pamięci. Częściej o kontrakty: co musi spełniać klucz w mapie, kto jest właścicielem współdzielonego stanu, co zwraca metoda, gdy nie ma wyniku. Poniżej 20 pytań na poziomie junior, mid i Spring Boot/JPA, z krótkimi odpowiedziami, które da się powiedzieć na głos, oraz linkami do dokumentacji. Odpowiedzi są nasze, nie z cudzych list.

Jak wyglądają pytania z Javy na rozmowie technicznej

Zwykle zaczyna się od prostego pytania i schodzi głębiej: „dlaczego nadpisujesz hashCode razem z equals?”, a potem „co się stanie, gdy klucz zmieni się po wstawieniu do mapy?”. Format rozmowy (zadanie na żywo, zadanie domowe, pytania teoretyczne, część po angielsku) zależy od firmy i stanowiska, dlatego zapytaj rekrutera, jak będzie wyglądał proces. Dokumentację języka i API znajdziesz na Dev.java i w Javadoc.

Pytania na poziomie junior

1. Czym różni się == od equals?

Dla referencji == sprawdza, czy to ten sam obiekt, a equals może definiować równość logiczną. Klasy wartości (np. String) nadpisują equals, więc dwa osobne obiekty z tą samą treścią są równe. Do porównywania napisów używaj equals.

2. Jaki jest kontrakt equals i hashCode?

equals ma być zwrotne, symetryczne, przechodnie i spójne, a dla null zwraca false. Jeśli dwa obiekty są równe według equals, ich hashCode musi być taki sam. Odwrotnie nie musi. Kontrakt opisuje Javadoc klasy Object.

3. Dlaczego String jest niezmienny i co to daje?

Nie da się zmienić jego zawartości po utworzeniu, więc można go bezpiecznie współdzielić między wątkami i używać jako klucza w mapie. Konkatenację w pętli lepiej robić przez StringBuilder. Szczegóły: String.

4. ArrayList czy LinkedList?

W większości przypadków ArrayList: dostęp po indeksie jest szybki, a dane leżą w jednej tablicy. LinkedList ma sens rzadko, a o wyborze decyduje profil operacji, nie przyzwyczajenie. Dobra odpowiedź nazywa konkretny scenariusz.

5. Jak działa HashMap?

Klucz trafia do kubełka na podstawie hashCode, a equals rozstrzyga kolizje. Mapa nie gwarantuje kolejności, dopuszcza klucz null i nie jest synchronizowana; domyślny współczynnik zapełnienia to 0,75. Zob. HashMap.

6. Co się stanie, gdy zmieniasz obiekt używany jako klucz?

Jeśli zmiana wpływa na hashCode lub equals, nie odnajdziesz wpisu. Dlatego klucze powinny być niezmienne.

7. Wyjątki checked i unchecked, kiedy które?

Checked wymuszają obsługę lub deklarację, unchecked (RuntimeException) opisują błędy programisty lub sytuacje, po których zwykle nie da się sensownie wznowić pracy. Ważniejsze od teorii: nie połykaj wyjątków i zachowuj przyczynę.

8. Po co try-with-resources?

Zasoby implementujące AutoCloseable są zamykane automatycznie, także przy wyjątku. Zobacz Oracle Tutorial.

Pytania na poziomie mid

9. Jak działają generyki i czym jest wymazywanie typów (type erasure)?

Generyki dają kontrolę typów w czasie kompilacji; informacja o parametrach typu w większości znika w czasie wykonania. Stąd ograniczenia, np. brak new T(). Zob. Generics Tutorial.

10. Do czego służy Optional, a do czego nie?

Głównie jako typ zwracany, gdy „brak wyniku” jest normalnym przypadkiem. Dokumentacja zaznacza, że zmienna typu Optional nigdy nie powinna sama być null. Zob. Optional.

11. Czy strumienie są leniwe? Co z modyfikowaniem źródła?

Operacje pośrednie wykonują się dopiero przy operacji końcowej. Modyfikowanie źródła podczas wykonywania potoku (poza źródłami współbieżnymi) może dać wyjątki lub błędne wyniki: obowiązuje zasada nieingerencji. Zob. java.util.stream.

12. Stream.toList() a Collectors.toList()?

Stream.toList() zwraca listę niemodyfikowalną; przy próbie zmiany poleci UnsupportedOperationException. Dokumentacja nie gwarantuje typu zwracanej listy. Zob. Stream.

13. synchronized, volatile i klasy z java.util.concurrent, kiedy co?

Zacznij od pytania: kto jest właścicielem stanu współdzielonego? Gdy to możliwe, unikaj go (niezmienność, przekazywanie wiadomości). Gdy trzeba go współdzielić, użyj gotowych kolekcji współbieżnych lub zamków z java.util.concurrent, zamiast pisać własne. Przegląd: java.util.concurrent.

14. HashMap a ConcurrentHashMap?

HashMap nie jest synchronizowana: równoległa modyfikacja strukturalna wymaga zewnętrznej synchronizacji. ConcurrentHashMap jest bezpieczna wątkowo, a odczyty nie blokują. Zob. ConcurrentHashMap.

15. Jak poprawnie zamknąć ExecutorService?

shutdown() pozwala dokończyć zadania już zgłoszone, shutdownNow() próbuje je przerwać. Od nowszych wersji Javy ExecutorService jest też AutoCloseable. Zob. ExecutorService.

16. Czym są wątki wirtualne?

Lekkie wątki planowane przez środowisko uruchomieniowe Javy, nie przez system operacyjny; JVM może ich obsłużyć bardzo wiele. Pasują do zadań czekających na I/O. Zob. Thread.

17. Po co record?

Zwięzły sposób na niezmienny nośnik danych, z gotowymi equals, hashCode i toString. Zob. Record.

Pytania ze Spring Boot i JPA

18. Co robi auto-konfiguracja w Spring Boot?

Próbuje skonfigurować aplikację na podstawie zależności na classpath, np. gdy jest HSQLDB i nie zdefiniowałeś własnych beanów połączenia, Boot skonfiguruje bazę w pamięci. Zob. Spring Boot Reference.

19. Wstrzykiwanie przez konstruktor czy setter?

Kontener wspiera oba. Konstruktor pokazuje wymagane zależności i pozwala na pola final, więc dla obowiązkowych zależności to częsty wybór; setter dla opcjonalnych. Zob. Dependency Injection.

20. Dlaczego @Transactional czasem „nie działa” przy wywołaniu metody z tej samej klasy?

W domyślnym trybie proxy przechwytywane są tylko wywołania przychodzące z zewnątrz przez proxy; samowywołanie nie uruchamia transakcji, nawet jeśli metoda ma adnotację. Zob. @Transactional.

Jak ćwiczyć i co z narzędziami podczas rozmowy

Weź każde z 20 pytań i odpowiedz na głos w 30–60 sekund, potem dopowiedz „dlaczego” i „co jeśli”. Spisz pytania, na których się zacinasz, i napisz do nich mały kod. Podobny schemat przygotowania opisujemy w przygotowaniu do rozmowy technicznej i pytaniach behawioralnych; angielskie wersje: Java Interview Questions. Jeśli część rozmowy jest po angielsku, zerknij na rozmowę po angielsku.

Interview Copilot to aplikacja na komputer, która słucha dźwięku rozmowy i pokazuje krótkie podpowiedzi, a także rozwiązuje zadania ze zrzutu ekranu. Można ją wypróbować za darmo, bez karty (5 minut rozpoznawania na żywo i 3 rozwiązania ze zrzutu). Najlepiej sprawdza się w ćwiczeniach przed rozmową. Uwaga: wielu pracodawców zabrania narzędzi AI podczas rozmowy na żywo, dlatego zapytaj rekrutera na piśmie, co jest dozwolone. Widoczność okna przy udostępnianiu ekranu zależy od systemu i aplikacji (na Linuksie jest widoczne), więc testuj na prywatnym udostępnieniu: niewidzialny asystent, asystent do rozmów z kodem.

Źródła

Sprawdzone 12.11.2026. Pytania i odpowiedzi są naszym własnym opracowaniem; nie opisujemy procesów rekrutacyjnych konkretnych firm, bo nie mamy ich z publicznych, zweryfikowanych źródeł.

Źródła

FAQ

Jakie pytania z Javy padają na rozmowie dla juniora?

Najczęściej: equals i hashCode, niezmienność String, różnice między ArrayList i LinkedList, działanie HashMap, wyjątki checked i unchecked oraz try-with-resources. Ważniejsze od definicji jest uzasadnienie wyboru na konkretnym przykładzie.

Jakie pytania ze Spring Boot warto znać?

Auto-konfiguracja, wstrzykiwanie zależności (konstruktor czy setter), działanie proxy przy @Transactional, w tym problem samowywołania, oraz podstawy JPA. Odpowiedzi sprawdź w oficjalnej dokumentacji Spring.

Czy na rozmowie z Javy pytają o współbieżność?

Na poziomie mid zwykle tak: synchronized i volatile, kolekcje współbieżne, ExecutorService, a coraz częściej wątki wirtualne. Format zależy od firmy, więc zapytaj rekrutera, jak wygląda proces.

Ile trwa przygotowanie do rozmowy z Javy?

Zależy od punktu wyjścia. Praktyczny schemat: dziennie kilka pytań odpowiadanych na głos plus mały kod do tych, na których się zacinasz. Po 1–2 tygodniach regularnych ćwiczeń zwykle widać różnicę w płynności odpowiedzi.

Czy mogę użyć AI podczas rozmowy technicznej z Javy?

Tylko jeśli pracodawca na to pozwolił dla danego etapu. Wielu zabrania AI na żywo, a do przygotowania zwykle pozwala. Zapytaj rekrutera na piśmie, zanim cokolwiek użyjesz.

Gdzie znaleźć rzetelne odpowiedzi na pytania z Javy?

W oficjalnych źródłach: Dev.java, Javadoc Java SE oraz dokumentacji Spring. Listy pytań z internetu bywają nieaktualne lub błędne; sprawdzaj odpowiedzi w dokumentacji.

Jak aplikacja pomaga w tym przypadku

Powiązane artykuły

Czytaj dalej