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
  • Externalizable: precyzyjna kontrola serializacji

    JAVA 25 SELF
    Poziom 43,Lekcja 2
    Rozszerzamy podstawową serializację w Javie: gdy automatyka Serializable to za mało, z pomocą przychodzi ręczny kontrakt Externalizable z metodami writeExternal/ readExternal. W wykładzie omawiamy, jak w pełni kontrolować format danych, zmniejszać rozmiar plików i utrzymywać kompatybilność wsteczną, porównujemy ze strumieniami ObjectOutputStream/ ObjectInputStream, pokazujemy przykłady, plusy/minusy i typowe błędy (obowiązkowy public konstruktor bez parametrów, kolejność zapisu/odczytu itd.).
    Dostępne
  • Konfigurowanie zachowania serializacji: metody niestandardowe

    JAVA 25 SELF
    Poziom 43,Lekcja 3
    W lekcji omawiamy, jak wpływać na proces serializacji i deserializacji w Javie za pomocą metod writeReplace i readResolve: po co podmieniać obiekt na proxy, jak zachować singleton, co robić z obiektami niemutowalnymi oraz jak ma się to do writeObject/ readObject. Ćwiczenia krok po kroku, diagram Mermaid przepływu operacji i omówienie typowych błędów.
    Dostępne
  • Bezpieczeństwo serializacji: najlepsze praktyki

    JAVA 25 SELF
    Poziom 43,Lekcja 4
    Praktyczny przewodnik po bezpiecznej serializacji w Javie: dlaczego deserializacja z niezaufanych źródeł jest groźna, jak się bronić za pomocą ObjectInputFilter, słowa kluczowego transient, jawnego serialVersionUID, weryfikacji typów przez instanceof oraz alternatywnych formatów wymiany (JSON/Proto). W środku – przejrzyste przykłady kodu, filtrowanie dozwolonych klas i omówienie typowych błędów.
    Dostępne
  • Serializacja zagnieżdżonych obiektów: specyfika

    JAVA 25 SELF
    Poziom 44,Lekcja 0
    W tym wykładzie omawiamy, jak Java wykonuje głęboką serializację grafu obiektów: co dzieje się z polami‑referencjami, dlaczego wszystkie zagnieżdżone obiekty muszą implementować Serializable, jak uniknąć NotSerializableException i w jakich przypadkach pomaga modyfikator transient. Na przykładach pokażemy serializację/deserializację obiektów z zagnieżdżeniem, kolekcjami i cyklicznymi referencjami, a także przeanalizujemy typowe błędy związane z serialVersionUID i dużymi grafami obiektów.
    Dostępne
  • Obiekty zagnieżdżone i hierarchiczne: serializacja grafów

    JAVA 25 SELF
    Poziom 44,Lekcja 1
    Jak Java serializuje złożone struktury danych: od zagnieżdżonych kolekcji i hierarchii dziedziczenia po cykliczne grafy obiektów. Wyjaśnimy, dlaczego działa serializacja Map<String, List<Book>>, jak zachowywane są rzeczywiste typy potomków w List<Animal>, jak działa mechanizm referencji przy cyklach oraz jakie pułapki się zdarzają. Porozmawiamy o roli ObjectOutputStream/ ObjectInputStream, metodach writeObject/ readObject, polu serialVersionUID i modyfikatorze transient.
    Dostępne
  • Problem cyklicznych referencji: wykrywanie i obejście

    JAVA 25 SELF
    Poziom 44,Lekcja 2
    Wyjaśniamy, czym są cykliczne referencje w grafach obiektów, dlaczego są groźne dla serializacji i jak sobie z nimi radzić. Pokazujemy, jak standardowe strumienie Javy — ObjectOutputStream/ ObjectInputStream — automatycznie śledzą już napotkane obiekty i zapisują specjalne uchwyty (handles), zapobiegając StackOverflowError. Omawiamy pułapki własnej serializacji ( writeObject/ readObject, defaultWriteObject/ defaultReadObject), a także strategie obchodzenia cykli przy JSON: adnotacje @JsonIdentityInfo, @JsonBackReference/ @JsonManagedReference, wykluczanie pól przez transient i użycie identyfikatorów.
    Dostępne
  • Tożsamość obiektów przy binarnej serializacji

    JAVA 25 SELF
    Poziom 44,Lekcja 3
    Jak Java zachowuje i odtwarza tożsamość obiektów przy binarnej serializacji: dlaczego równoważność sprawdzana przez a. equals( b) to nie to samo co tożsamość ( a == b), w jaki sposób ObjectOutputStream/ ObjectInputStream śledzą graf obiektów i zapisują „odwołania zwrotne” (reference handle) zamiast duplikatów, dlaczego działa to poprawnie przy cyklach oraz jak metody writeReplace() i readResolve() mogą wpłynąć na końcową tożsamość. Omówienie z przykładami: cykle, współdzielone odwołania, praktyka i typowe błędy.
    Dostępne
  • Omówienie typowych błędów przy serializacji kolekcji

    JAVA 25 SELF
    Poziom 44,Lekcja 4
    W tej lekcji omawiamy najczęstsze problemy przy serializacji kolekcji: od java.io.NotSerializableException (gdy elementy nie implementują Serializable) i pułapek generyków z ClassCastException po niezgodność wersji klas przez serialVersionUID. Porozmawiamy o niuansach niezmiennych kolekcji ( List.of(), Set.of(), Map.of()), zachowaniu pól transient/ static, a także o wydajności i rozmiarze plików, gdzie pomogą zapis strumieniowy i kompresja ( GZIPOutputStream). Otrzymasz praktyczne wskazówki, przykłady kodu i rekomendacje dotyczące bezpiecznej deserializacji ( readObject/ writeObject).
    Dostępne
  • Problemy binarnej serializacji: bezpieczeństwo, zgodność

    JAVA 25 SELF
    Poziom 45,Lekcja 0
    W wykładzie omawiamy ryzyka binarnej serializacji w Javie: dlaczego deserializacja z niezaufanych źródeł jest niebezpieczna (łańcuchy „gadget chain”, RCE), czym grożą specjalne metody takie jak readObject i readResolve, oraz jak się chronić (whitelisting, rezygnacja na rzecz JSON/ XML, bezpieczne biblioteki takie jak Jackson). Szczegółowo omówimy zgodność wersji klas i rolę pola serialVersionUID, zachowanie przy InvalidClassException, ograniczenia transient/ static, wydajność, a także najlepsze praktyki i typowe błędy.
    Dostępne
  • Serializacja kolekcji generycznych: specyfika

    JAVA 25 SELF
    Poziom 45,Lekcja 1
    Wyjaśniamy, jak wymazywanie typów ( type erasure) wpływa na serializację kolekcji generycznych: dlaczego w czasie wykonywania List<String> i List<Integer> — to ten sam ArrayList, co dokładnie jest zapisywane i odczytywane przez ObjectOutputStream/ ObjectInputStream, skąd biorą się ClassCastException oraz ostrzeżenia o unchecked rzutowaniach. Pokażemy przykłady z kolekcjami zagnieżdżonymi, Map/ Set, wspomnimy o Gson/ Jackson i sformułujemy praktyki bezpiecznej deserializacji.
    Dostępne
  • Zgodność i zgodność wsteczna (backward compatibility) podczas serializacji

    JAVA 25 SELF
    Poziom 45,Lekcja 2
    Wyjaśniamy, jak ewoluować klasy serializowalne i nie zepsuć danych: po co ustalać serialVersionUID, jak JVM sprawdza zgodność, które zmiany są bezpieczne (dodanie/usunięcie pól), a które krytyczne (zmiana typu, przeniesienie klasy do pakietu). Pokażemy rolę transient/ static, techniki niestandardowej serializacji przez writeObject/ readObject, różnicę między serializacją binarną a XML/JSON, strategie zapewniania zgodności i typowe błędy (np. InvalidClassException).
    Dostępne
  • Migracja i wersjonowanie zserializowanych danych

    JAVA 25 SELF
    Poziom 45,Lekcja 3
    Jak bezpiecznie ewoluować klasy serializowalne w produkcji: co się stanie przy zmianie pól i typów, jak działa wersja klasy poprzez serialVersionUID, kiedy ją zmieniać, a kiedy pozostawiać bez zmian, jak stosować „leniową” migrację przez readObject/ readFields i konwersję „in-place”, oraz jakie istnieją zaawansowane techniki, takie jak ObjectInputStream.readClassDescriptor(). Przeanalizujemy pełny scenariusz praktyczny z dwiema wersjami klasy i typowymi błędami, włącznie z pułapkami InvalidClassException.
    Dostępne
  • 1
  • ...
  • 19
  • 20
  • 21
  • 22
  • 23
  • ...
  • 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