Z jakimi pytaniami z języka programowania Java możesz się spotkać na rozmowie rekrutacyjnej? Poniżej przedstawiamy najczęściej pojawiające się pytania i odpowiedzi. Poznaj je, by otrzymać wymarzoną pracę programisty Java.
Oto 10 popularnych pytań rekrutacyjnych JAVA. Wraz z odpowiedziami
1. Co to jest oraz do czego służy Hibernate?
Odpowiedź:To framework, dzięki któremu nie trzeba tworzyć bazy danych dla aplikacji. Umożliwia mapowanie obiektowo-relacyjne (ORM) – odwzorowanie obiektów klas na bazę danych. Odpowiada za sprawną komunikację aplikacji z bazą danych.
2. Co to jest JIRA?
Odpowiedź:Narzędzie przeznaczone dla wszystkich członków zespołu developerów, które służy do planowania, śledzenia procesu tworzenia i wdrażania oprogramowania wysokiej jakości, tym samym usprawnia ich pracę.
3. Czym w Javie różni się final od finally i finalize?
Odpowiedź:Słowo kluczowe Final oznacza, że coś nie może zmienić swojej wartości np. zmienna, przy której użyto tego słowa kluczowego, będzie zmienną stałą. Użycie go na metodzie sprawia, że nie można jej przesłonić w klasie dziedziczącej, stanie się niezmienna. Użycie go na klasie sprawi, że nie będzie mogła zostać rozszerzona.
Słowem kluczowym Finally oznacza się blok kodu, który zawsze powinien się wykonać. Jest to przydatne do czyszczenia zasobów, tj.zamykania streamów czy połączeń do bazy danych. Obecnie to słowo kluczowe może być pomijane na rzecz mechanizmu try-with-resources.
Słowo finalize nie jest w Javie słowem kluczowym (możemy w ten sposób nazwać klasę lub metodę). To domyślna metoda w klasie Object, a poleganie na niej jest w większości przypadków złą praktyką. Jest ona wykonywana tylko jeden raz (chyba że wcześniej wywołamy ją w kodzie sami), zaraz przed tym, gdy Garbage Collector (GC) chce usunąć ten obiekt z pamięci.
Za pomocą finalize można wykonać wszystkie operacje, które mają na celu posprzątanie pewnych zasobów, jednak w skali całego obiektu. Można więc zamknąć wszelkie połączenia do bazy danych, sieci, otwarte pliki itp.
Należy to jednak traktować jako dodatkowe zabezpieczenie w szczególnych przypadkach.
4. Czym jest GIT?
Odpowiedź: GIT to rozproszony system kontroli wersji kodu. Jest narzędziem, które pozwala w wygodny sposób przekazać wszystkim developerom w zespole tę samą wersję kodu. Za pomocą GIT można kontrolować każde wprowadzone przez nas zmiany. Dzięki temu można wykorzystać je do stworzenia listu zakupów, a nawet systemu do zarządzania ruchem powietrznym dla lotniska.
5. Czym jest JVM?
Odpowiedź: JVM to środowisko, w którym Java może się uruchamiać. Technicznie jest to wirtualna maszyna, czyli system „tłumaczący” specyficzny język (bytecode) na instrukcje zrozumiałe dla komputera (język maszynowy). Dzięki temu aplikacja skompilowana na jedną platformę może być bez zmian uruchamiana także na innych systemach operacyjnych czy platformach sprzętowych.
6. Jakie typy obszarów pamięci są przydzielane przez JVM?
Odpowiedź: Obszar Klasy – przechowywane są w nim struktury klas, dane pól inicjowanych podczas uruchomienia programu oraz kod metod.
Obszar Sterty (Heap) – Tutaj przechowywane są wszystkie stworzone przez programistę obiekty. Sama Sterta dzieli się jeszcze na: pamięć Young & Old.
Obszar Stosu – w nim zawierają się zmienne lokalne i wyniki pośrednie. Stos ma też udział w wywołaniach i zwrotach metod.
7. Jaka jest różnica pomiędzy klasami String, StringBuilder i StringBuffer w Javie?
Odpowiedź: String jest klasą stałą. Nie można modyfikować jej zawartości po utworzeniu.
StringBuffer to klasa zmienna, można więc zmodyfikować ich zawartość po utworzeniu. Jest klasą synchronizowaną.
StringBiulder jest również klasą zmienną, ale niesynchronizowana, co sprawia, że jest to najlepsze rozwiązanie w przypadku początkujących programistów lub programów jednowątkowych,
8. Czy możemy wykonać program bez metody main()?
Odpowiedź: Jest to metoda, którą każda aplikacja Javy musi posiadać. Bez niej program się nie uruchomi. Chociaż to nie jest takie oczywiste, bo mój kolega developer uważa, że można :D
9. Czym jest obiekt immutable? Czy można stworzyć obiekt immutable?
Odpowiedź: Nie można modyfikować obiektów klasy immutable po ich utworzeniu. Jeśli spróbujesz go zmodyfikować, otrzymasz nowy obiekt (klon), który podmienisz podczas tworzenia. Oznacza to, że każda modyfikacja tych obiektów wiąże się ze stworzeniem nowych.
10. Czy można nadpisać metodę private lub static w Javie?
Odpowiedź: Nie można nadpisać metody private lub static w Javie.
Zakres specyfikatora prywatnego dostępu ogranicza się do konkretnej klasy. Aby coś nadpisać, musimy mieć stworzoną klasę podstawową i potomną. Jeśli metoda nadklasy jest private, klasa-dziecko nie może jej używać, a metody z klasy podrzędnej będą traktowane jako nowe metody (a nie nadpisania).
Metody static nie mogą zostać nadpisane, ponieważ są częścią samej klasy. Nie są częścią żadnego obiektu klasy.