Kolejność wykonywania operatorów Jaki będzie rezultat działania poniższego programu? package org.blog; public class Main { public static void minLengthString(String s) { if (s != null && s.length() > 3) { System.out.println(„Napis ma więcej niż 3 znaki.”); } } public static void main(String[] args) { String strValue = null; minLengthString(strValue); } } Zostanie rzucony wyjątek NullPointerException, …
Kategoria: Rekrutacja
Java pytanie rekrutacyjne: Wieloparametrowe konstruktory
Czy wieloparametrowe konstruktory są poprawne? Wieloparametrowe konstruktory pod względem składni języka są poprawne, za to występują z nimi inne problemy. W przypadku, gdy mamy konstruktor z większą ilością parametrów np. cztery oraz większość parametrów jest tego samego typu to zaczynają się problemy. Stwórzmy prosty przykład, najzwyklejsza POJO klasa Usera z 6 polami: package org.blog; public …
Java pytanie rekrutacyjne: Metody typu wyliczeniowego
Wymień metody typu wyliczeniowego i opisz krótko ich przeznaczenie W typie wyliczeniowym znajdziemy następujące metody: name(), ordinal(), values(), valueOf(String name). Przypuśćmy, że mamy typ wyliczeniowy Gender: package org.blog; public enum Gender { MALE, FEMALE } name() Metoda zwraca nazwę obiektu, czyli wywołując: System.out.println(Gender.MALE.name()); Otrzymamy: MALE ordinal() Ze względu, że każdy obiekt typu wyliczeniowego ma przypisany swój …
Java pytanie rekrutacyjne: Instancja klasy abstrakcyjnej
Czy można stworzyć instancję klasy abstrakcyjnej? TL;DR Nie można utworzyć instancji klasy abstrakcyjnej. Można to już wywnioskosować z nazwy – abstrakcyjna. Można to również bez problemu sprawdzić: package org.blog; public abstract class Entity { private Long id; public Entity(Long id) { this.id = id; } public Long getId() { return id; } } Podczas próby …
Java pytanie rekrutacyjne: String pool
Czym jest String Pool? String pool jest specjalnym miejscem w pamięci, do którego trafiają niektóre obiekty typu Stringi – dokładnie te, które nie są tworzone poprzez użycie operatora new. String pool został stworzony w celu optymalizacji JVM, dzięki niemu wiele obiektów Stringów o tej samej wartości wskazują na ten sam obszar pamięci. Co nam to …
Java pytanie rekrutacyjne: Checked vs unchecked exceptions
Checked vs unchecked W Javie mamy dwa rodzaje wyjątków – checked oraz unchecked. Tak naprawdę dużo je nie różni – w skrócie jedne muszą być obsłużone, a drugie nie. Checked Wyjątki checked powstają po rozszerzeniu klasy Exception. public class CheckedException extends Exception { } Tak jak wspomniałem wcześniej musi on zostać obsłużony – np. przez …
Java pytanie rekrutacyjne: Adnotacja @Override
Do czego służy adnotacja Override, co zyskujemy korzystając z niej? Dzięki wykorzystaniu adnotacji @Override kompilator otrzymuje od nas informację, że dana metoda będzie przysłaniać inną metodę. W przypadku, gdy żadna metoda do przysłonięcia nie zostanie odnaleziona (np. w interfejsie, w klasie rodzica) to kompilator zwróci nam błąd. Wykorzystując tą adnotację mamy pewność, że przysłonimy istniejącą …
Zadania rekrutacyjne
Zadania rekrutacyjne Cześć, dzisiejszy wpis trochę rozpoczyna temat rekrutacji do pracy na tym blogu. W tym wpisie pokażę częste zadania do wykonania niezależnie od języka programowania. Jeżeli pojawi się implementacja to zrobię to oczywiście w Javie. FizzBuzz Na początek nie mogło zabraknąć słynnego FizzBuzz, znalazłem statystyki w internecie, że poprawnie wykonuje je około 10-15% programistów, a ty …