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 …
Kategoria: 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 …
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 …
Java pytanie rekrutacyjne: Java autoboxing i unboxing
Czym jest autoboxing oraz unboxing w Javie? W Javie możemy korzystać z następujących prymitywnych typów danych: int; float; double; boolean; char; short; byte; long; Każdy z tych typów ma swój odpowiednik, który jest obiektem – są to tak zwane typy osłonowe. Klasa Integer jest typem osłonowym dla int, Double dla double, Boolean dla boolean itd. …
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 …
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, …
Java pytanie rekrutacyjne: Obiekt immutable
Czym jest obiekt immutable? Obiekt immutable jak sama nazwa wskazuje jest niezmienny czyli podczas swojego „życia” nie może zmienić swojego stanu. Oczywiście czasami jest możliwa zmiana stanu obiektu np. String: String s = „qwe”; s = „any”; Jednak wiąże się to za każdym razem z utworzeniem nowego obiektu. W skrócie oznacza to, że adres zmiennej s się …
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 – …
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; …
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 …