Ta strona wykorzystuje pliki cookie w celu prezentacji dopasowanych dla Ciebie treści. Możesz włączyć/wyłączyć obsługę plików cookies w swojej przeglądarce.

Dowiedz się więcej
Pytania rekrutacyjne Java

Pytania rekrutacyjne Java

Opublikowano  przez Marek Zoellner

Szukasz pracy jako Java Developer? Gratulacje, to od lat jeden z najpopularniejszych języków programowania, którego znajomość jest świetnie wynagradzana. Wymagania są jednak równie wysokie. Sprawdź, jakich pytań z Javy możesz się spodziewać na rozmowie rekrutacyjnej.

Bez względu na to, czy dostaniesz ofertę od wielkiej korporacji, software house’u czy małej, kilkuosobowej firmy musisz opanować materiał na takim samym, wysokim poziomie. Osoby, które wybrały szkolenie z Javy w Kodilli, są do takiej rozmowy przygotowywane przez wiele miesięcy, zarówno pod względem technicznym, jak i z tzw. umiejętności miękkich. Co prawda pytań, które mogą się pojawić w czasie spotkania z rekruterem, jest mnóstwo i nie istnieje jedna, obowiązująca w branży IT lista.

Przeczytaj również: Nauka Javy - Jak się uczyć programowania w Javie

Musisz znać i rozumieć podstawy, potrafić wytłumaczyć, na czym polega obiektowość Javy, znać zależności między klasami i metodami, albo np. umieć wyjaśnić, co to są obiekty niezmienne (immutable) i jakie są ich zalety i wady. Ale to oczywiście tylko wybrane zagadnienia.

Darmowy webinar: Dlaczego JAVA jest taka popularna?

Pytania z Javy, ktorych możesz się spodziewać na rozmowie rekrutacyjnej:

Listę przykładowych pytań rekrutacyjnych z Javy i niektóre odpowiedzi, znajdziesz poniżej.

Co to znaczy, że Java jest językiem obiektowym?

Obiektowość to podejście, które polega na identyfikacji rzeczywistych obiektów, które są opisywane w kodzie w postaci klas. Klasa ma swoje zachowania i atrybuty, w klasach zawarte są także definicje poszczególnych elementów oraz ich zachowania. Jednym z przykładów na obrazowe opisanie tej abstrakcji może być samochód. Wyobraź sobie auto ulubionej marki, kolor jego lakieru, moc silnika, a potem przenieś je w myślach na autostradę i pozwól się rozpędzić. Zanim ruszysz w drogę nie zapomnij jednak zamknąć drzwi i zapiąć pasy. Ten samochód i jego cechy, czyli marka, kolor, aktualna prędkość i to, czy pasy są zapięte to właśnie Twój obiekt. Możesz wpływać na jego stan określając jego zachowania, np. przyciśnij gaz - przyspiesz, popuść gazu - zwolnij, naciśnij hamulec - zatrzymaj się. I choć nadal może się to wydawać dość abstrakcyjne, to jednak kod napisany w Javie często odnosi się do zupełnie realnych, istniejących w świecie rzeczywistym urządzeń, np. pralki czy lodówki, które wykonują uruchamiane przez program polecenia.

Co to jest i do czego służy Hibernate?

Hibernate to framework, dzięki któremu programista nie musi tworzyć bazy danych dla aplikacji.

Czym w Javie różni się final od finally i finalize?

  • final to modyfikator, którego możemy użyć przy polach, metodach lub klasach. W zależności od tego, gdzie zostanie zastosowany, oznacza on odpowiednio, że do danego pola nie można przypisać innego obiektu w przyszłości, danej metody nie można przysłonić poprzez dziedziczenie lub danej klasy nie można rozszerzyć.
  • finally to elementy bloku try-catch-finally, w którym możemy umieścić kod, który wykona się niezależnie od powodzenia operacji wewnątrz try - jest to dobre miejsce, aby pozamykać otwarte zasoby i ‘wyczyścić’ pamięć.
  • finalize() to metoda klasy Object, która jest wywoływana dokładnie raz, zanim obiekt zostanie usunięty z pamięci przez garbage collector (może się jednak zdarzyć, że nie zostanie ona wywołana, ponieważ obiekt nie jest usuwany); ogólnie nie jest najlepszą praktyką polegać na tej metodzie, lepszym rozwiązaniem jest samodzielne zarządzanie cyklem życia obiektu

Co to jest JIRA?

JIRA to oprogramowanie służące do śledzenia błędów i zarządzania projektami.

Czym jest Spring?

Spring to framework upraszczający tworzenie oprogramowania, jeden z podstawowych elementów związanych z językiem Java.

Na czym polega technika TDD?

Technika TDD polega na tym, że programista najpierw pisze testy do nieistniejącej funkcjonalności, a dopiero później tworzy kod, który tę funkcjonalność wdraża.

Czym są wzorce projektowe?

Wzorce projektowe to zbiór wskazówek opracowany na podstawie najczęściej pojawiających się problemów przy projektach związanych z programowaniem obiektowym. To opis praktyk ułatwiający tworzenie czytelnego kodu.

Jak zostać Java Developerem? Wywiad z absolwentem Kodilli

Czym jest GIT?

GIT to system kontroli wersji, który umożliwia pracę w zespole na odległość i poprzez zapisywanie wszystkich zmian i poprawek, a w efekcie ukończenie bezbłędnego kodu.

Jaka jest różnica pomiędzy equals() a „==”?

Obie metody są metodami klasy Object i najczęściej nie przejmujemy się ich implementacją. To może być akceptowalne w przypadku obiektów, które żyją tylko chwilę i nie przechowujemy ich w kolekcjach (np. obiekty transferowe), ale jeśli dochodzi serializacja obiektów lub ich przechowywanie np. w bazie danych czy nawet kolekcjach, implementacja obu tych metod powinna być jedną z pierwszych rzeczy, którą zrobimy. Z zasady jednak metody te powinny być implementowane dla każdego obiektu, niezależnie od jego przeznaczenia czy sposobu użycia i warto wyrabiać sobie tego rodzaju nawyki.

Czym jest JVM (maszyna wirtualna Javy)?

JVM to środowisko, w którym Java może się uruchamiać. Technicznie jest to wirtualna maszyna, czyli system “tłumaczący” specyficzny język (w tym wypadku bytecode) na instrukcje zrozumiałe dla komputera (czyli język maszynowy). Unikalność tego rozwiązania polegała na tym, że aplikacja skompilowana na jedną platformę, może być bez zmian uruchamiana także na innych systemach operacyjnych czy platformach sprzętowych - wszystkie różnice pomiędzy platformami są “wyrównywane” na poziomie implementacji JVM (tradycyjnie aplikację trzeba skompilować pod konkretny system operacyjny i platformę sprzętową - wynika to z różnic w budowie procesorów i podstawowych funkcjach systemowych takich jak wyświetlenie tekstu na ekranie czy wczytanie pliku).

Bootcamp Java Developer

Jeszcze więcej pytań z Javy, które mogą się pojawić na rozmowie rekrutacyjnej:

  1. Czym jest enkapsulacja?
  2. Jak działa Spring (a dokładniej jego kontener IoC)?
  3. Czym jest i do czego służy klasa Locale (oraz inne powiązane klasy)?
  4. Jakimi sposobami można zapisać liczbę w języku Java (podając ją w kodzie)?
  5. Co to jest polimorfizm?
  6. Jaka jest różnica między listą i setem?
  7. Czym się różni webservice typu REST od webservice typu SOAP?
  8. Czym jest, i jak działa Garbage Collector w Javie?
  9. Jaka jest różnica pomiędzy klasami String oraz StringBuilder/StringBuffer?
  10. Jakie typy numeryczne są dostępne w Javie?
  11. Kiedy należy używać podejścia iteracyjnego?
  12. Jaka jest różnica pomiędzy klasą abstrakcyjną a interfejsem?
  13. Czym są mikroserwisy i kiedy warto je stosować?
  14. Jakie typy baz danych wyróżniamy?
  15. Co to znaczy, że obiekt jest niemutowalny?
  16. Kiedy należy używać podejścia rekursywnego?
  17. Na czym polega wzorzec projektowy Builder (budowniczy)?
  18. Czym się różni wzorzec proxy od adaptera?
  19. Czym jest ‘bean’ w Springu, co może, a co nie może nim być?
  20. Jakie są scope'y beanów?
  21. Na czym polega kontrakt equals-hashCode?
  22. Czym jest i do czego służy interfejs java.lang.Comparable?
  23. Czym jest i jak działa JDBC?
  24. Co to jest servlet?
  25. Czym się różni wyjątek typu checked od unchecked?

Jeśli wśród tych pytań pojawiły się takie, na które nie znasz odpowiedzi, musisz to szybko nadrobić i uzupełnić braki. Kursanci Kodilli zostają w taką wiedzę wyposażeni podczas szkolenia. Pozostałe osoby znajdą odpowiednią wiedzę w internecie i pewnie poradzą sobie samodzielnie, zajmie to jednak znacznie więcej czasu, nie dostaną też feedbacku od Mentora.

Wszystkim osobom, które dopiero zastanawiają się, czy Java to język programowania, z którym będzie im po drodze, polecamy darmowy mini-kurs. Sprawdźcie swoje predyspozycje podejmując wyzwanie:

Podejmij wyzwanie z Javy

Umów się na rozmowę z doradcą Kodilli