Rekrutacja

Java pytanie rekrutacyjne: Czym się różni git merge od rebase?

Merge vs rebase W kontroli wersji Git, w przypadku gdy chcemy połączyć dwie lub więcej gałęzi w repozytorium mamy do wyboru dwie opcje. Są to komendy: merge oraz rebase. Obie z nich mają swoje zastosowanie, mogą być co prawda używane zamiennie, lecz powinny być stosowane w odpowiednich kontekstach. W przypadku łączenia dwóch gałęzi przy użyciu …

Continue Reading
Rekrutacja

Java pytanie rekrutacyjne: Czym jest lazy loading?

Lazy loading Lazy loading lub inaczej leniwa inicjalizacja jest wzorcem projektowym, który zapewnia, że inicjalizacja obiektu nastąpi jak najpóźniej jest to możliwe. W skrócie, obiekt jest inicjalizowany w momencie, gdy jest potrzebny, użytkownik chce go użyć. Takim momentem może być np. wczytanie dużej kolekcji danych lub wykonanie skomplikowanego algorytmu. Korzystanie z tego wzorca projektowego zapewnia zaoszczędzenie pamięci …

Continue Reading
Rekrutacja

Java pytanie rekrutacyjne: Porównywanie Stringów

Jaki będzie efekt działania poniższego kodu? public class Main { public static void main(String[] args) { String janusz = „Janusz”; String person = new String(janusz); String name = „Janusz” + „”; String januszUppercase = new String(„JANUSZ”); System.out.println(janusz == person); System.out.println(name == person); System.out.println(janusz == name); System.out.println(janusz.equals(name)); System.out.println(januszUppercase.equalsIgnoreCase(name)); System.out.println(januszUppercase == janusz); } } Po uruchomieniu takiego …

Continue Reading
Rekrutacja

Java pytanie rekrutacyjne: Static Initialization – statyczny inicjalizator w Javie

Czym jest Static Initialization? Static Initialization lub statyczny inicjalizator w Javie jest blokiem kodu rozpoczynającym się od słowa kluczowego static, który jest wywoływany po załadowaniu danej klasy. Owy blok kodu wywoła się dokładnie tylko jeden raz – w przypadku, gdy użyjemy danej klasy. Jego użycie jest bardzo proste, wystarczy stworzyć klamry ze słowem kluczowym static …

Continue Reading
Rekrutacja

Java pytanie rekrutacyjne: Jakie znasz kolekcje w Javie?

Jakie znasz kolekcje w Javie? Wymień ich charakterystyczne cechy Pakiet java.util oferuje wiele różnych kolekcji do wykorzystania przez programistę. Każda z kolekcji jest implementowana na różne sposoby, przez co programista musi wybrać, która implementacja będzie działać najszybciej w jego aktualnym problemie. My jednak się skupimy na samych kolekcjach, a nie na ich konkretnych implementacjach. List, …

Continue Reading
Rekrutacja

Java pytanie rekrutacyjne: Testy jednostkowe

Czym są testy jednostkowe? Testy jednostkowe polegają na napisaniu kodu źródłowego, który wykonuje inny kod (produkcyjny) weryfikując poprawność jego działania. Jak sama nazwa wskazuje testujemy jednostki – czyli małe części – a dokładniej mówiąc metody. Mówiąc ściślej – metody publiczne traktując je jak czarne skrzynki. Dajemy konkretne dane wejściowe i oczekujemy poprawnych danych wyjściowych – …

Continue Reading
Rekrutacja

Java pytanie rekrutacyjne: Wykonywanie bloku finally

Czym blok finally jest wykonywany w przypadku złapania wyjątku? W przypadku, gdy mamy blok try catch możemy dodać kolejny blok finally, który powinnien wykonywać się zawsze. Jednak czy na pewno jest to prawda? Co w przypadku, gdy złapiemy wyjątek lub zwrócimy wartość z metody już w bloku try? Przetestujmy to na prostych przykładach: package pl.rekrutacja.pytanie; …

Continue Reading
Rekrutacja

Java pytanie rekrutacyjne: Przeciążanie i przesłanianie metod

Czym różni się przeciążanie od przysłaniania metod? Przeciążanie metody polega na stworzeniu wielu metod o tej samej nazwie, lecz przyjmującymi inne parametry. Taki mechanizm pozwala użytkownikowi użycie tej metody, która mu odpowiada – np. ma obiekt danego typu i nie chce go samodzielnie zmieniać. Takim przykładem może być parametr URL oraz String – zależnie od …

Continue Reading