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
  • module-info.java: składnia, tworzenie modułów

    JAVA 25 SELF
    Poziom 60,Lekcja 1
    Wyjaśniamy, czym jest plik module-info.java, gdzie znajduje się w projekcie i jak deklarować moduł za pomocą słowa kluczowego module. Uczymy się eksportować API poprzez exports, dodawać zależności poprzez requires, a także przeglądamy dodatkowe dyrektywy ( opens, uses, provides ... with). W wykładzie — przykłady, zasady nazewnictwa modułów, praktyczny przegląd struktury projektu i typowe błędy przy budowaniu modułów.
    Dostępne
  • Enkapsulacja przez moduły: eksport i import

    JAVA 25 SELF
    Poziom 60,Lekcja 2
    Jak Java 9+ dodała modułową enkapsulację ponad klasami i pakietami: nawet public-klasy są ukryte, dopóki pakiet nie zostanie jawnie otwarty przez exports w module-info.java. Omawiamy, jak podłączać zależności za pomocą requires, jak ograniczać widoczność przez exports to, czym różni się poziom module od private/ public, oraz jakie błędy kompilacji (na przykład „package ... is not visible”, „cannot access ...”) sugerują, że zapomniałeś dodać exports lub requires.
    Dostępne
  • Podział projektu na moduły: najlepsze praktyki

    JAVA 25 SELF
    Poziom 60,Lekcja 3
    Praktyczny przewodnik po architekturze modułowej w Javie: kiedy i po co dzielić kod na moduły, typowe schematy („architektura cebulowa”, podział na api/ impl, moduły testowe), konfiguracja zależności przez module-info.java i słowa kluczowe requires/ exports, działające przykłady projektu w 3 modułach, integracja z Maven/ Gradle i IntelliJ IDEA, a także omówienie typowych błędów (zależności cykliczne, nieeksportowane pakiety, nieprawidłowy --module-path).
    Dostępne
  • Budowanie projektów wielomodułowych: Maven, Gradle, IDEA

    JAVA 25 SELF
    Poziom 60,Lekcja 4
    Jak zbudować modułowy projekt w Javie: różnica między classpath a module-path, kiedy używać flagi --module-path, jak skonfigurować strukturę wielomodułową w Maven i Gradle oraz jak uruchamiać wszystko z IntelliJ IDEA. Pokażemy strukturę modułów z module-info.java, zależności przez requires/ exports, konfigurację wtyczek i częste błędy podczas budowania.
    Dostępne
  • ProcessBuilder — uruchamianie procesów zewnętrznych

    JAVA 25 SELF
    Poziom 61,Lekcja 0
    Omówimy, jak z Javy uruchamiać zewnętrzne polecenia i narzędzia za pomocą klasy ProcessBuilder: dlaczego jest lepsza od Runtime. getRuntime(). exec(), jak konfigurować katalog roboczy przez directory(), zmienne środowiskowe przez environment(), i zarządzać procesem przez start(), waitFor(), strumienie getInputStream()/ getErrorStream()/ getOutputStream(). Porozmawiamy o wieloplatformowości ( cmd.exe/ ls), pracy ze stdout/ stderr i typowych błędach.
    Dostępne
  • Odczyt wyjścia procesu, praca ze stdin/stdout

    JAVA 25 SELF
    Poziom 61,Lekcja 1
    Praktyka pracy z procesami zewnętrznymi w Javie: jak czytać stdout przez Process.getInputStream(), łapać błędy z stderr przez Process.getErrorStream(), pisać do stdin za pomocą Process.getOutputStream(), a także używać wygodnych metod inputReader()/ errorReader()/ outputWriter(). Omówimy specyfikę poleceń takich jak java -version, równoległe czytanie strumieni w celu uniknięcia deadlock, pracę z kodowaniami ( "UTF-8") oraz niewielki pomost do skryptów w Pythonie.
    Dostępne
  • Zarządzanie cyklem życia procesu

    JAVA 25 SELF
    Poziom 61,Lekcja 2
    Praktyka zarządzania procesami zewnętrznymi z Javy: czekamy na zakończenie przez waitFor() (w tym z limitami czasu), odczytujemy kod wyjścia, poprawnie zatrzymujemy przez destroy()/ destroyForcibly(), zapobiegamy zawieszaniu się i procesom „zombie”, pamiętając o strumieniach wyjścia i wyjątkach. Omawiamy niuanse wieloplatformowe i typowe błędy.
    Dostępne
  • Interaktywna współpraca z procesami

    JAVA 25 SELF
    Poziom 61,Lekcja 3
    W tej lekcji omówimy, jak z poziomu Javy zorganizować „żywy” dialog z programami zewnętrznymi: pisać do stdin, czytać ze stdout i stderr, unikać wzajemnych blokad ( deadlock), równolegle przetwarzać wyjście za pomocą ExecutorService, poprawnie zamykać strumienie i zarządzać cyklem życia Process poprzez ProcessBuilder. Zobaczymy przykłady z interaktywnym skryptem w Python i narzędziem bc, a także omówimy pułapki buforowania i konieczność flush().
    Dostępne
  • Przegląd typowych błędów przy pracy z procesami

    JAVA 25 SELF
    Poziom 61,Lekcja 4
    Praktyczny przewodnik po niezawodnej pracy z procesami zewnętrznymi w Javie: jak uniknąć zawieszeń z powodu nieodczytanych strumieni stdout/ stderr, jak poprawnie ustawiać kodowania wyjścia (np. UTF-8, CP866), jak uwzględniać różnice międzyplatformowe poleceń ( ls vs dir), jak obsługiwać uprawnienia i kody wyjścia przez process.exitValue(), zamykać zasoby bez wycieków i unikać interaktywnych zakleszczeń. Omawiamy właściwe użycie ProcessBuilder, równoległe czytanie strumieni (wątki/ ExecutorService), poprawne zakończenie przez process.destroy(), a także przenośne ścieżki z File.separator.
    Dostępne
  • Wprowadzenie do refleksji: klasa Class — po co jest potrzebna

    JAVA 25 SELF
    Poziom 62,Lekcja 0
    Omówimy, czym jest refleksja w Javie i po co jest potrzebna frameworkom i narzędziom, jak działa obiekt Class — serce refleksji, oraz jakimi sposobami można go uzyskać: przez .class, getClass() i Class.forName(). Porozmawiamy, kiedy warto stosować refleksję, a kiedy lepiej się bez niej obejść, zobaczymy przykłady pobierania metadanych (nazwa, pakiet, nadklasa, interfejsy), omówimy mini‑narzędzie „Co to za klasa?” oraz typowe błędy ( ClassNotFoundException, wydajność, bezpieczeństwo).
    Dostępne
  • Uzyskiwanie informacji o klasach, polach i metodach

    JAVA 25 SELF
    Poziom 62,Lekcja 1
    W wykładzie omawiamy refleksję w Javie: jak przez Class-API pobrać informacje o polach ( getFields()/ getDeclaredFields()), metodach ( getMethods()/ getDeclaredMethods()), konstruktorach ( getConstructors()/ getDeclaredConstructors()) i adnotacjach ( getAnnotations()). Poznamy modyfikatory przez Modifier ( public, private, protected, static, final), wyjaśnimy różnice „public kontra declared”, zbudujemy mini‑narzędzie — inspektor klas — i obejrzymy schemat wizualny.
    Dostępne
  • Bezpieczeństwo, ograniczenia i alternatywy refleksji

    JAVA 25 SELF
    Poziom 62,Lekcja 2
    Wykład omawia ryzyka i ograniczenia refleksji: obchodzenie enkapsulacji przez setAccessible( true), próby modyfikacji pól final i dlaczego jest to niebezpieczne z powodu optymalizacji JVM; los SecurityManager oraz jak system modułów (Java 9+) prowadzi do InaccessibleObjectException. Porozmawiamy o spadku wydajności i bezpieczeństwa typów, nowoczesnych alternatywach ( record, sealed, pattern matching, APT, DI) i dobrych praktykach. Na końcu — praktyczny przykład z parametrem JVM --add-opens.
    Dostępne
  • 1
  • ...
  • 26
  • 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