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.
Profilery w Java – jak analizować wydajność aplikacji?
Czym jest profiler w Java? Profiler to narzędzie służące do analizy działania aplikacji gdy jest ona uruchomiona. Pozwala sprawdzić, w jaki sposób program wykorzystuje zasoby komputera oraz które…
Jak działa JVM od środka: stos, sterta, Eden i JIT
Jak działa program w Javie? Zanim przejdę do omawiania jak Java zarządza pamięcią, warto zrozumieć, co właściwie dzieje się od momentu napisania kodu Java do jego wykonania przez…
Kolejki w Java i mikroserwisach – ActiveMQ, RabbitMQ, SQS i SNS
Jak działają kolejki w Java i mikroserwisach? Poznaj Queue, ActiveMQ, RabbitMQ, Amazon SQS i SNS oraz sprawdź, kiedy warto stosować komunikację asynchroniczną.
Spock Framework w Javie – testy jednostkowe i integracyjne krok po kroku
Czym jest Spock Framework? Czym jest Spock Framework? Spock Framework to alternatywna dla JUnit biblioteka służąca do tworzenia testów jednostkowych. Jest on szczególnie popularny w projektach opartych o…
Wszystkie wpisy
Przeglądaj artykuły o Javie, backendzie, SQL, Linuksie, Redisie, Mavenie i narzędziach programisty.
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ę…
Java #39: logowanie aplikacji
Termin logowanie aplikacji pewnie kojarzy Ci się z logowaniem się przez jakieś okienko do aplikacji. Tymczasem możesz też logować jakieś dane podczas pisania swojego kodu. Po co wykonywać taką czynność? Podczas tego kursu wielokrotnie…
Java #38: testy jednostkowe
Znasz już paradygmaty programowania obiektowego, umiesz korzystać z kolekcji oraz obsługiwać wyjątki. Tym razem postaram się wytłumaczyć Ci, jak używać testy jednostkowe do sprawdzenia swojego kodu. Zanim przejdę do omawiania konkretnej implementacji, przypomnij sobie…
Java #37: wyjątki i ich obsługa
Zanim zacznę omawiać, czym są wyjątki (ang. exceptions), postaraj się przetestować poniższy kod: Wynik na konsoli powinien być podobny do poniższego: Co to oznacza? Ponieważ użyłem zmiennej, do którego nie przypisałem wcześniej żadnej referencji…
Java #36: interfejs Iterator
Pojęcie iteratora jest ostatnim, które związane jest z kolekcjami. Są one alternatywą dla klasyczny pętli for oraz foreach. Każda z kolekcji Java, która dziedziczy po interfejsie Collection, posiada w swoim API operację o nazwie…