CodeGym
Promocja
Nauka
Kursy
Zadania
Ankiety & quizy
Gry
Pomoc
Harmonogram
Społeczność
Użytkownicy
Forum
Czat
Artykuły
Historie sukcesu
Aktywność
Opinie
Subskrypcje
Jasny motyw

Lekcje

  • Opinie
  • O nas
Start
Rozpocznij naukę
Rozpocznij naukę teraz
  • Mój postęp
  • Kursy
  • Mapa Questów
  • Lekcje
  • Tworzenie obiektów za pomocą refleksji

    JAVA 25 SELF
    Poziom 62,Lekcja 3
    Jak tworzyć obiekty i zarządzać klasami „w locie”: dlaczego Class.newInstance() jest przestarzały, jak poprawnie używać getConstructor/ getDeclaredConstructor i Constructor.newInstance, wywoływać metody przez Method.invoke oraz czytać/zmieniać pola przez Field. Omówimy typowe wyjątki ( ReflectiveOperationException i inne), ograniczenia systemu modułów, przydatne praktyki oraz mini‑narzędzie do dynamicznej instancjacji. Plus – przejrzysty schemat całego procesu.
    Dostępne
  • Refleksja i Dependency Injection

    JAVA 25 SELF
    Poziom 62,Lekcja 4
    W tym wykładzie omawiamy praktykę refleksji w Javie: jak za pomocą Class, Field i Method odczytywać prywatne pola ( setAccessible( true)) i złożyć prosty serializator; jak kontenery DI wstrzykują zależności na podstawie adnotacji ( @Inject, @Autowired) przez konstruktory i pola; jak dynamiczne proxy oparte na Proxy i InvocationHandler przechwytują wywołania; gdzie stosuje się to w praktyce ( Spring, JUnit, Jackson) oraz jakie ograniczenia i błędy się pojawiają.
    Dostępne
  • Podstawy logowania: java.util.logging, Log4j, SLF4J

    JAVA 25 SELF
    Poziom 63,Lekcja 0
    Po co aplikacjom potrzebne są logi i dlaczego samo System.out.println nie ratuje na produkcji. Omówimy poziomy ERROR/ WARN/ INFO/ DEBUG/ TRACE, wbudowany stos java.util.logging i plik konfiguracyjny logging.properties, poznamy Log4j 2, Logback i fasadę SLF4J. Porównamy z wyjściem konsolowym, dołączymy zależności i omówimy typowe błędy konfiguracji i użycia.
    Dostępne
  • Formatowanie i poziomy logów: najlepsze praktyki

    JAVA 25 SELF
    Poziom 63,Lekcja 1
    Omawiamy, z czego składa się dobry komunikat logu (czas, poziom INFO/ ERROR, nazwa loggera, tekst, stack trace), jak poprawnie formatować wpisy za pomocą szablonów SLF4J/Log4j2 ( "{}" zamiast konkatenacji), jak logować wyjątki ( logger.error(..., ex)), kiedy używać poziomów ERROR/ WARN/ INFO/ DEBUG/ TRACE, a także najlepsze praktyki: bez danych wrażliwych, zrozumiałe komunikaty, identyfikatory korelacyjne ( orderId, userId) i właściwa konfiguracja log4j2.xml.
    Dostępne
  • Logowanie w aplikacjach wielowątkowych i webowych

    JAVA 25 SELF
    Poziom 63,Lekcja 2
    Jak uczynić logi niezawodnymi w środowisku wielowątkowym i w webie: bezpieczeństwo wątkowe gotowych bibliotek ( Logback, Log4j 2, java.util.logging), kontekst MDC z przekazywaniem requestId, integracja z filtrami Springa i obsługą błędów, różnice względem System.out, niuanse pul wątków i śledzenie w mikrousługach (traceId, OpenTelemetry). Omawiamy praktyczne przykłady i typowe błędy, używamy SLF4J i Logger jako pole static final.
    Dostępne
  • Monitorowanie JVM: JMX, VisualVM, Java Flight Recorder

    JAVA 25 SELF
    Poziom 63,Lekcja 3
    Ten wykład to praktyczny przewodnik po monitorowaniu JVM: jak odczytywać standardowe metryki przez JMX i JConsole, jak wizualnie obserwować pamięć, wątki i profilować metody w VisualVM (w tym heap dump i thread dump), a także jak nagrywać „czarną skrzynkę” za pomocą Java Flight Recorder i analizować ją w JDK Mission Control. Pokażemy komendy uruchomienia ( -XX:StartFlightRecording), omówimy typowe scenariusze analizy GC/wątków i najczęstsze błędy.
    Dostępne
  • Profilowanie i optymalizacja kodu: narzędzia i podejścia

    JAVA 25 SELF
    Poziom 63,Lekcja 4
    Wyjaśniamy, czym profilowanie różni się od monitoringu, które metryki są ważne (czas pracy metod, pamięć, wątki, blokady) i z jakich narzędzi korzystać: VisualVM, Java Flight Recorder, a także komercyjnych profilerów. W praktyce badamy „powolny” kalkulator, uczymy się szukać „gorących miejsc”, analizować heap dump i usuwać wąskie gardła poprzez wymianę algorytmów, zmniejszanie alokacji i buforowanie. Kończymy wizualnym schematem procesu optymalizacji oraz omówieniem typowych błędów.
    Dostępne
  • Organizacja pamięci w JVM: stos, sterta, PermGen/MetaSpace

    JAVA 25 SELF
    Poziom 64,Lekcja 0
    Dokąd trafiają zmienne lokalne, obiekty i metadane klas w trakcie działania JVM: omawiamy stos wątków, stertę oraz ewolucję PermGen → MetaSpace. Porozmawiamy o tym, jak działa GC, jakie występują błędy pamięci ( StackOverflowError, OutOfMemoryError) i jak wpływają flagi uruchomieniowe ( -Xss, -Xmx, -XX:MaxMetaspaceSize). Dołączone są schematy, diagram Mermaid i działający przykład.
    Dostępne
  • Garbage collectory: G1, ZGC, Shenandoah, porównanie

    JAVA 25 SELF
    Poziom 64,Lekcja 1
    W wykładzie omawiamy, jak działa garbage collector ( GC) w JVM, czym różnią się klasyczne Serial/ Parallel/ CMS od nowoczesnych G1, ZGC i Shenandoah, czym są młode i stare pokolenie, dlaczego występują pauzy Stop-the-World i jak je minimalizować. W praktyce zobaczymy, jak włączać różne GC flagami ( -XX:+UseG1GC, -XX:+UseZGC, -XX:+UseShenandoahGC), konfigurować pauzy ( -XX:MaxGCPauseMillis) i rozmiary sterty ( -Xms/ -Xmx), czytać logi ( -Xlog:gc*) oraz unikać typowych błędów (np. wymuszonego wywołania System.gc()).
    Dostępne
  • Zmienne lokalne, wycieki pamięci, słabe referencje

    JAVA 25 SELF
    Poziom 64,Lekcja 2
    Z tego wykładu dowiesz się, gdzie „żyją” zmienne lokalne (stos wątku) i czym różni się on od sterty, dlaczego w Javie mimo GC wciąż możliwe są wycieki pamięci i jak ich uniknąć. Przejrzymy rzeczywiste scenariusze: „wieczne” static-kolekcje, nieodpięci słuchacze i cache'e. Poznamy rodzinę referencji: SoftReference, WeakReference, PhantomReference, a także kontener WeakHashMap. Poćwiczymy usuwanie wycieków i omówimy, dlaczego wywołanie System.gc() — to jedynie podpowiedź dla JVM, a nie rozkaz, oraz czym może się skończyć OutOfMemoryError.
    Dostępne
  • Narzędzia analizy pamięci: jmap, jvisualvm

    JAVA 25 SELF
    Poziom 64,Lekcja 3
    Praktyczny przewodnik po diagnostyce problemów z pamięcią w JVM: wykonujemy zrzut sterty ( heap dump) narzędziem jmap, czytamy podsumowania przez -heap i -histo, badamy aplikację w jvisualvm (karty Monitor, Heap Dump, Threads, Profiler), rozpracowujemy wyciek na przykładzie i poznajemy Eclipse MAT oraz jconsole. Na końcu — częste błędy i wskazówki.
    Dostępne
  • Analiza typowych błędów podczas pracy z pamięcią

    JAVA 25 SELF
    Poziom 64,Lekcja 4
    Praktyczny przegląd, dlaczego aplikacja Java może mieć wycieki pamięci i zwalniać: zapomniani słuchacze ( addActionListener/ removeActionListener), wieczne statyczne kolekcje, niezamykane zasoby (wskazówka: try-with-resources), anonimowe/wewnętrzne klasy, utrzymujące referencje, oraz nadużywanie System.gc(). Nauczymy się czytać logi GC ( -Xlog:gc*, -XX:+PrintGCDetails), dobrać kolektor, budować cache na WeakHashMap, monitorować ( jvisualvm, jconsole), analizować heap dump i poprawnie ustawiać -Xmx/ -Xms. Na koniec — realne przykłady wycieków i ich naprawy.
    Dostępne
  • 1
  • ...
  • 27
  • 28
  • 29
  • 30
Nauka
  • Rejestracja
  • Kurs Java
  • Pomoc w zadaniach
  • Cennik
  • Składnia Javy
Społeczność
  • Użytkownicy
  • Artykuły
  • Forum
  • Czat
  • Historie sukcesu
  • Aktywność
  • Program partnerski
Firma
  • O nas
  • Kontakt
  • Opinie
  • Dla mediów
  • CodeGym dla EDU
  • FAQ
  • Wsparcie
CodeGymCodeGym to kurs online do nauki programowania w Javie od podstaw. Kurs idealny do opanowania Javy dla początkujących. Zawiera 1200+ zadań z natychmiastową weryfikacją oraz niezbędny zakres teorii podstaw Javy. Aby pomóc Ci w nauce, wprowadziliśmy zestaw funkcji motywacyjnych: quizy, projekty programistyczne, materiały o efektywnej nauce i poradnik kariery dla programisty Java.
Obserwuj nas
Język interfejsu
English Deutsch Español हिन्दी Français Português
Polski
বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programiści są tworzeni, nie rodzą się" © 2026 CodeGym
MastercardVisa
"Programiści są tworzeni, nie rodzą się" © 2026 CodeGym