Java · Backend · Narzędzia

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.

Start tutaj

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.

01

Java od podstaw

Składnia, klasy, obiekty, kolekcje, wyjątki, Stream API i najważniejsze mechanizmy języka Java.

Przejdź do Javy →

02

Backend i Spring

REST API, Spring Boot, konfiguracja aplikacji, dobre praktyki i przykłady z pracy backend developera.

Zobacz backend →

03

Narzędzia developera

Maven, Git, Linux, Redis, SQL i narzędzia, które realnie przydają się w codziennym programowaniu.

Poznaj narzędzia →

Najnowsze wpisy

Najnowsze artykuły z bloga

Świeże wpisy o Javie, backendzie, narzędziach programisty, Linuksie, SQL i praktycznych problemach z codziennej pracy.

Archiwum

Wszystkie wpisy

Przeglądaj artykuły o Javie, backendzie, SQL, Linuksie, Redisie, Mavenie i narzędziach programisty.

  • SQL #3: Group by, having, funkcje agregujące oraz join

    GROUP BY i HAVING Aby zrozumieć do czego służą funkcje agregujące, wpierw musisz pojąć założenia grupowania w języku SQL. GROUP BY i HAVING służą do grupowanie danych a potem ustawienie warunku na jego wyniku.…

    Czytaj dalej

  • SQL #2: tworzenie schematu, zapytań i edycja danych

    Język SQL (ang. Structured Query Language) jest rodzajem deklaratywnego języka, który powstał w latach 70-siątych, do obsługi danych w bazach. Język ten w swojej istocie miał być intuicyjny i prosty, tak aby maksymalnie ułatwić…

    Czytaj dalej

  • SQL #1: schemat bazy danych

    Historia Koncepcja baz danych jest prawie tak stara jak cała informatyka. Ogólna idea baz danych polega na posiadaniu wyspecjalizowanego programu (silnika bazodanowego), który mógłby wyszukiwać dane przede wszystkim po ich zawartości a nie po…

    Czytaj dalej

  • Java #59: struktury danych bezpieczne wątkowo

    Na koniec cyku wpisów związanych z wielowątkowością, warto przyjrzeć się, jakie struktury danych bezpieczne wątkowo oferuje programistom Java. Okazuje się, że wiele problemów zostało już dawno przez kogoś rozwiązane (co jest dość częste w…

    Czytaj dalej

  • Java #58: volatile – widoczność zmiennych

    Jednym z wielu problemów obok synchronizacji, jest widoczność zmiennych klasowych dla poszczególnych wątków. Nie jest to problem oczywisty, dlatego rozważę wpierw poniższy kod. Na konsoli powinno wyświetlić się: Wynik nie jest poprawny, zmiana flagi…

    Czytaj dalej

  • Java #57: egzekutory – pule wątków

    Egzekutory W poprzednich lekcjach wątki były odpalane za pomocą odpalania za każdym razem osobnej instancji. Nie jest to jednak bardzo wygodny sposób. Wyobraź sobie, że musisz ten sam wątek odpalić tysiąc razy! Wymagałoby to…

    Czytaj dalej

  • Podstawy programowania – słowniczek

    Zapraszam Cię do mojego mini słowniczka z pojęć informatycznych. Jeśli interesują Cię podstawy programowania, to z pewnością znajdziesz tu dużo interesującej wiedzy! Pamięć – układ zer i jedynek. Każde miejsce zapisać można wartością 0…

    Czytaj dalej

  • Java #56: obiekty niezmienne (immutable)

    Obiekty niezmienne Przetwarzanie wielowątkowe niesie ze sobą jeden podstawowy problem. Praca wielu wątków na jednej klasie przechowującej stan (np. zwykła klasa typu POJO), wymaga odpowiedniej synchronizacji. Innym sposobem jest wymuszenie na klasie, która ma…

    Czytaj dalej

  • Java #55: zmienne atomowe i zamki

    Poza możliwością synchronizacji wątków, używając słowa sychronized, Java udostępnia wiele dedykowanych rozwiązań związanych z pracą w środowisku wielowątkowym. Większość z nich znajdziesz w pakiecie java.util.concurrent. W tym wpisie omówię dwa z nich: zmienne atomowe…

    Czytaj dalej

  • Java #54: synchronizacja wątków (synchronized)

    Praca w wielowątkowym środowisku stwarza wiele możliwości, ale też problemów. Jednym z nim jest synchronizacja wątków pracujących na tych samych zasobach. Częstym problemem, pojawiającym się w programowaniu współbieżnym, jest tzw. wyścig (ang. race condition).…

    Czytaj dalej