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
  • Użycie wyrażeń lambda w kolekcjach i strumieniach

    JAVA 25 SELF
    Poziom 48,Lekcja 1
    Praktyka wyrażeń lambda w kolekcjach i Stream API: jak zastąpić klasy anonimowe zwięzłymi lambdami, korzystać z metod kolekcji ( forEach, removeIf, sort, replaceAll) i budować potoki przetwarzania danych ( stream → filter → map → sorted → collect). Porównamy z klasami anonimowymi, omówimy „efektywnie final” zmienne, przedstawimy tabelę podstawowych operacji i przeanalizujemy typowe błędy.
    Dostępne
  • Zalety i wady wyrażeń lambda

    JAVA 25 SELF
    Poziom 48,Lekcja 2
    W wykładzie omawiamy, dlaczego Java otrzymała wyrażenia lambda: zwięzłość i czytelność, przekazywanie zachowania jako parametru, integracja z kolekcjami i Stream API ( filter, map, forEach), przechwytywanie „efektywnie” final zmiennych oraz wygodny zapis callbacków za pomocą operatora ->. Równolegle przyjrzymy się pułapkom: debugowanie długich łańcuchów, niejednoznaczność przeciążeń ( Runnable vs Callable), ograniczenia domknięć, serializacja i zagnieżdżone lambdy. Na końcu — praktyczne wskazówki, kiedy używać lambd, i przegląd typowych błędów.
    Dostępne
  • Domknięcia (closures) w Javie: specyfika

    JAVA 25 SELF
    Poziom 48,Lekcja 3
    W wykładzie wyjaśniamy, czym jest domknięcie i jak działa w Javie: jak lambdy i klasy anonimowe „przechwytują” zmienne zewnętrzne, dlaczego zmienne lokalne muszą być final lub efektywnie final, czym przechwytywanie zmiennych lokalnych różni się od odwołań do pól klasy oraz jak zachowuje się this w lambdach i klasach anonimowych. Pokażemy fabryki funkcji z IntSupplier, omówimy wewnętrzną implementację przechwytywania i typowe błędy (na przykład komunikat kompilatora Variable used in lambda expression should be final or effectively final).
    Dostępne
  • Klasy anonimowe: różnice względem lambd, przykłady

    JAVA 25 SELF
    Poziom 48,Lekcja 4
    W tym wykładzie omawiamy, czym jest klasa anonimowa w Javie, czym różni się od wyrażenia lambda: składnia, możliwości (pola, dodatkowe metody, nadpisywanie toString/ equals), zasięg i zachowanie this, przechwytywanie zmiennych (tylko final/„efektywnie final”). Pokazano praktyczne przykłady z Runnable, Comparator, Predicate, a także zalecenia — kiedy wybrać lambdę, a kiedy klasę anonimową.
    Dostępne
  • Interfejsy funkcyjne: Predicate, Consumer, Supplier, Function

    JAVA 25 SELF
    Poziom 49,Lekcja 0
    Omówimy kluczowe interfejsy funkcyjne z pakietu java.util.function: Predicate, Consumer, Supplier, Function – co przyjmują/zwracają i gdzie są używane w Stream API ( filter, map, forEach, generate). Przypomnimy zasadę „dokładnie jedna metoda abstrakcyjna” i adnotację @FunctionalInterface, napiszemy lambdy, porównamy je z klasami anonimowymi, przećwiczymy na przykładzie z klasą User oraz omówimy typowe błędy wyboru między Predicate/ Function i innymi.
    Dostępne
  • Kompozycja funkcji: compose, andThen

    JAVA 25 SELF
    Poziom 49,Lekcja 1
    Ten wykład — o tym, jak budować potoki przekształceń z małych funkcji za pomocą Function i jego metod compose oraz andThen. Omówimy kolejność zastosowania, zgodność typów, przykłady z Predicate ( and, or, negate), Consumer ( andThen), zbudujemy praktyczne potoki i porozmawiamy o typowych błędach: pomylona kolejność ( f.compose(g) vs f.andThen(g)), niezgodne typy i „spaghetti” z łańcuchów. Nauczysz się stosować apply, test, accept i konstruować czytelne, wielokrotnego użytku przekształcenia.
    Dostępne
  • Przekazywanie funkcji jako parametrów: przykłady

    JAVA 25 SELF
    Poziom 49,Lekcja 2
    Praktyczne wprowadzenie do przekazywania zachowania w Javie: jak używać wyrażeń lambda ( ->) i referencji do metod ( ::) razem ze Stream API i kolekcjami. Przyjrzymy się standardowym interfejsom funkcyjnym z java.util.function – Comparator, Predicate, Function, Consumer, Supplier – nauczymy się pisać uniwersalne metody, przyjmować zachowanie jako parametry i unikać typowych błędów. Poćwiczymy na przykładach ze Stream, Optional i własnych narzędziach przetwarzania list.
    Dostępne
  • Styl funkcyjny z Stream API

    JAVA 25 SELF
    Poziom 49,Lekcja 3
    Przechodzimy od imperatywnych pętli do deklaratywnych potoków przetwarzania danych z Stream API: omawiamy operacje pośrednie i terminalne, leniwe obliczenia, zbieranie wyników przez toList()/ collect, kluczowe operacje map, filter, sorted, flatMap, reduce, a także sprawdzenia anyMatch/ allMatch/ noneMatch. Porównamy styl imperatywny i funkcyjny, przeanalizujemy praktyczne przykłady oraz typowe błędy, w tym nie na miejscu forEach przy zbieraniu kolekcji oraz przedwczesny parallelStream().
    Dostępne
  • Analiza błędów w programowaniu funkcyjnym

    JAVA 25 SELF
    Poziom 49,Lekcja 4
    10 najczęstszych błędów podczas pracy z lambdami i Stream API w Javie: przechwytywanie zmiennych ( final/ effectively final), zachowanie this w lambdach, efekty uboczne i równoległość ( parallelStream()), wnioskowanie typów i generics, praca z null i Optional, komponowanie funkcji ( compose/ andThen), a także wyjątki sprawdzane (na przykład IOException). Pokazujemy bezpieczne praktyki: filtrowanie Objects::nonNull, operacje terminalne ( sum(), collect(...)), kolekcje bezpieczne dla wątków i dekompozycję długich łańcuchów.
    Dostępne
  • Nasłuchiwacze (Listeners) i interfejsy zdarzeń

    JAVA 25 SELF
    Poziom 50,Lekcja 0
    Jak w Javie działa model zdarzeń: źródło generuje zdarzenie, a zarejestrowani nasłuchiwacze otrzymują powiadomienie i reagują. Omówimy kluczowe interfejsy nasłuchiwaczy z biblioteki Swing — ActionListener, MouseListener, KeyListener, ChangeListener, DocumentListener — i pokażemy, jak rejestrować obsługę przez addActionListener oraz implementować metodę actionPerformed. Poćwiczymy podłączanie nasłuchiwaczy do JButton/ JFrame, porównamy klasy anonimowe i wyrażenia lambda, omówimy typowe błędy i praktyczne wskazówki.
    Dostępne
  • Zdarzenia w Swing i AWT: podstawy, przykłady

    JAVA 25 SELF
    Poziom 50,Lekcja 1
    Krótkie praktyczne wprowadzenie do modelu zdarzeń AWT/ Swing: tworzymy przycisk JButton, rejestrujemy słuchacza przez addActionListener, obsługujemy w actionPerformed. Omawiamy klasy anonimowe i wyrażenia lambda, popularnych słuchaczy ( MouseListener/ MouseAdapter, KeyAdapter, DocumentListener), piszemy miniaplikację w oparciu o JFrame, JButton, JLabel, przyglądamy się sekwencji wywołań i typowym błędom (ciężkie operacje w obsłudze, finalność zmiennych w lambdach, zapomniany addActionListener, usuwanie słuchaczy, użycie SwingWorker).
    Dostępne
  • Tworzenie i obsługa własnych zdarzeń

    JAVA 25 SELF
    Poziom 50,Lekcja 2
    W wykładzie omawiamy, jak zaprojektować własne zdarzenia w Javie: tworzymy klasę zdarzenia na bazie java.util.EventObject, definiujemy interfejs słuchacza poprzez java.util.EventListener, dodajemy mechanizm subskrypcji/wyrejestrowania ( add...Listener/ remove...Listener) oraz powiadamiania ( fire...). Zobaczymy praktykę na przykładach DataLoader i licznika, omówimy obsługę w klasach anonimowych i wyrażeniach lambda, a także typowe błędy (wyjątki u słuchaczy, wycieki pamięci, ConcurrentModificationException).
    Dostępne
  • 1
  • ...
  • 21
  • 22
  • 23
  • 24
  • 25
  • ...
  • 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