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.
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…
Java 21 LTS – najważniejsze zmiany od Java 18 do Java 21
Co nowego w Java 21 LTS? Java 21 to kolejna wersja Long-Term Support (LTS), która zastępuje Java 17 jako główne wydanie rekomendowane do zastosowań produkcyjnych. Oprócz poprawek wydajności…
Java 17 LTS – najważniejsze zmiany od Java 13 do Java 17
Dlaczego warto poznać zmiany w Java 17? Java 17 to jedna z najważniejszych wersji języka wydanych w ostatnich latach. Jest to wydanie Long-Term Support (LTS), które przez długi…
Wszystkie wpisy
Przeglądaj artykuły o Javie, backendzie, SQL, Linuksie, Redisie, Mavenie i narzędziach programisty.
Java#23: pola statyczne i stałe
Pola statyczne i metody Pamiętasz pewnie z kursu dotyczącego podstaw programowania, że alternatywą dla programowania obiektowego jest programowanie strukturalne (oparte na metodach statycznych). Każda metoda statyczna (czyli klasowa) musi zawierać wszystkie wewnętrzne komponenty (użyte…
Java #22: słowo kluczowe final
Wiesz już czym jest dziedziczenie oraz polimorfizm. Znasz także klasę abstrakcyjną, która musi rozszerzać inną, aby zostać użyta. Czasami jednak będziesz chcieć uniknąć rozszerzania jednej klasy przez drugą. Powodów może być wiele, a jednym…
Java #21: przeciążanie metod
W poprzedniej lekcji pisałem o tym jak przesłaniać metody za pomocą dziedziczenia i adnotacji @Override. Teraz dowiesz się, jaka jest różnica między przesłanianiem (ang. override) a przeciążaniem (ang. overload) metody. Nie jest to wbrew pozorom to…
Java #20: adnotacja override, przesłanianie metod
Czym są adnotacje? W dzisiejszej lekcji poznasz swoją pierwszą adnotację, którą to będzie adnotacja override. Adnotacje tak jak obiekty są typami referencyjnymi. Nie będę wnikał w jaki sposób się je tworzy, bo jest to wiedza…
Java #19: polimorfizm i słowo kluczowe this
Co oznacza polimorfizm? Zagadnienie, które dziś poznasz to polimorfizm. Po pierwszym wymówieniu tego słowa pewnie zastanawiasz się kto wpadł na taki pomysł, aby używać w programowaniu słowa, którego znaczenia nikt nie zna. Podejrzewam też,…
Java #18: klasy abstrakcyjne
Znasz już podstawy programowania strukturalnego oraz podstawowe algorytmy. Teraz czas przejść do bardziej skomplikowanych paradygmatów programowania obiektowego. Klasy abstrakcyjne są (abstrakcja) jednym z paradygmatów programowania obiektowego. Można ją wytłumaczyć jak stosowanie równań matematycznych w…
Algorytmy #3: sortowanie – przykłady
Podstawy Zagadnienie algorytmów sortowania to jedno z najczęściej zadawanych pytań na rozmowach kwalifikacyjnych. W praktyce rzadko przyda Ci się ta umiejętność, bowiem wszystkie sensowne algorytmy sortowania zostały już dawno opracowane i zaimplementowane. Java także…
Algorytmy #2: dziel i zwyciężaj
Trochę historii 'dziel i zwyciężaj’ Maksyma „dziel i zwyciężaj” (ang. divide and conquer) powinna kojarzyć Ci się ze starożytnym Rzymem, gdzie główne sukcesy militarne tego Państwa, szły razem z znakomitą dyplomacją. Rzymianie, gdy tylko…
Algorytmy #1: rekurencja/rekursja
Czym jest Algorytm? Za pewne zastanawiasz się co to jest algorytm i po co są one tak istotne dla programistów. Najprostsza definicja brzmi: algorytm to sposób rozwiązywania problemu. Jest ona jak najbardziej poprawna, ale…
Java #17: Formatowanie łańcuchów znaków (String format)
Formatowanie łańcuchów znaków Na pewno kilka razy zastanawiałeś się, dlaczego nie można w prosty sposób formatować Stringi. Okazuje się, że w formatowanie łańcuchów znaków Javie jest to bardzo proste. Poniżej zaimplementowałem pomocniczą klasę Cat,…