Praktyczne programowanie w Javie
Blog o Javie, backendzie i narzędziach programisty. Znajdziesz tu praktyczne
przykłady, konfiguracje, notatki z codziennej pracy i konkretne rozwiązania problemów.
Wybierz swoją ścieżkę
Jeśli jesteś pierwszy raz na blogu, zacznij od jednego z głównych obszarów.
Każda ścieżka prowadzi do praktycznych wpisów, przykładów i notatek z codziennej pracy programisty.
Java od podstaw
Składnia, klasy, obiekty, kolekcje, wyjątki, Stream API i najważniejsze mechanizmy języka Java.
Backend i Spring
REST API, Spring Boot, konfiguracja aplikacji, dobre praktyki i przykłady z pracy backend developera.
Narzędzia developera
Maven, Git, Linux, Redis, SQL i narzędzia, które realnie przydają się w codziennym programowaniu.
Najnowsze artykuły z bloga
Świeże wpisy o Javie, backendzie, narzędziach programisty, Linuksie, SQL i praktycznych problemach z codziennej pracy.
Java 12: drobne zmiany
Nie zauważysz wiele istotnych zmian Java 12. Co prawda w kolejnym JDK zaprezentowano 'demo’ kilku ciekawych „featurów”, które wejdą następnych wersjach (np. zmiany w switch), jednak sama „dwunastka”…
Narzędzia programisty #4: Redis cache
Stosowanie tzw. cache’a jest jednym z najprostszych sposobów do osiągnięcia lepszej wydajności programu komputerowego. Redis jest jedną z wielu technologii tego typu. W poniższej notce pokażę Ci małą…
Popularne frameworki #1: Lombok
Język Java często jest krytykowany za konieczność pisania kodu, który mógłby być automatycznie wygenerowany przez JDK. Ciągłe pisanie getterów i setterów do każdej klasy POJO, tworzenie toStringów, czy…
Narzędzia programisty #3: Maven postawy
Jedną z ważniejszych zasad w programowaniu jest korzystanie z fragmentów kodu opracowanych już przez kogoś innego. Niektórzy nazywają tą regułę 'nie wymyślaniem koła od nowa’. Chodź z pozoru…
Wszystkie wpisy
Przeglądaj artykuły o Javie, backendzie, SQL, Linuksie, Redisie, Mavenie i narzędziach programisty.
Java #49: mechanizm refleksji
Programowanie generyczne pozwala na ujednolicenie Twojego kodu w wielu obszarach. Podobnie działa mechanizm refleksji. Tak tak jak w matematyce, aby się nie powtarzać możesz skorzystać z wielu symboli i wyrażeń*, tak samo w programowaniu…
Java #48: własny iterator (interfejs Iterable)
Własny iterator Skoro znasz zarówno typy generyczne jak i struktury danych, to możesz napisać swój własny iterator, który będzie przechodził po kolekcji, zgodnie z Twoją intencją. Wpierw należy zaimplementować interfejs Iterator, który zawiera dwie…
Java #47: typ wieloznaczny (wildcard)
Ostatnim tematem związanym z typami generycznymi, jest używanie tak zwanego typu wieloznacznego (ang. wildcard). Oznacza się go za pomocą znaku zapytania (czyli np. ArrayList<?>). Powszechnym wykorzystaniem tego mechanizmu jest sytuacja, gdy wiedza o tym,…
Java #46: ograniczenia typów generycznych
Ponieważ każda klasa w Javie. która nie jest finalna, może być dziedziczona lubi sama dziedziczyć. To pojawia się problem, w jaki sposób taka klasa miałaby być typem generycznym. Wiesz ze wcześniejszych lekcji, że polimorfizm…
Java #45: typy generyczne (generics)
Klasa generyczna i typy generyczne Używając kolekcji bardzo często korzystałem z magicznych ostrych nawiasów, w obrębie których wpisywałem nazwę klasy, której typu miały być jej elementy. Za przykład może posłużyć ArrayList<String>, która jest strukturą…
Java #44: klasy zagnieżdżone (nested classes)
Ostatnim tematem na poziomie średnio-zaawansowanym, o którym opowiem, są klasy zagnieżdżone. Wiem, że brzmi to dość enigmatycznie, ponieważ, dotąd pokazywałem jedynie kod zawarty tylko w jednej klasie. Jednak język Java daje dużo większe możliwości,…
Java #43: JAXB – czytanie plików xml
JAXB (ang. Java Architecture for XML Binding) to wbudowana biblioteka Javy, która umożliwia łatwe przetwarzanie niewielkich plików xml. Dla osób, które nie miały dotąd do czynienia, z tymi typami plików, tłumaczę, że pliki xml…
Java #42: pakiet NIO (new input-output)
Oprócz używania standardowych strumieni wyjścia i wejścia, w Javie został zaimplementowany specjalny pakiet NIO (ang. new input-output), który również odpowiada za pracę z sygnałami przychodzącymi i wychodzącymi z Twojego programu. Specyfiką tego rozwiązania jest…
Java #41: Strumienie znakowe
Ten wpis będzie bardzo podobny do poprzedniego, także jeśli jeszcze tego nie zrobiłeś/aś, przeczytaj wpierw lekcję o strumieniach danych. Tym razem zamiast korzystać z strumieni wejścia i wyjścia, użyję jednej z wielu klas typu…
Java #40: strumienie wejścia/wyjścia
Wiesz już dużo o programowaniu, ale Twój program nie ma zbyt wielkiego sensu, jeśli dane wejściowego i wyjściowe za każdym razem będziesz musiał na stałe ustawiać w swoim programie. W tej lekcji nauczysz się…