CodeGym
Aktion
Lernen
Kurse
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan
Community
Nutzer
Forum
Chat
Artikel
Erfolgsgeschichten
Aktivität
Bewertungen
Abonnements
Helles Design

Lektionen

  • Bewertungen
  • Über uns
Start
Jetzt lernen
Jetzt lernen
  • Mein Fortschritt
  • Kurse
  • Quest-Karte
  • Lektionen
  • Leistungsprobleme bei IO: Engpässe

    JAVA 25 SELF
    Level 41,Lektion 0
    Diese Vorlesung behandelt, was ein „Engpass“ bei Ein-/Ausgabe ist und wie man ihn erkennt und beseitigt. Wir klären, warum Festplatten- und Netzwerkoperationen deutlich langsamer sind als RAM, welche Anti-Pattern häufig vorkommen (byteweises Lesen über read(), synchrones Logging usw.), wie Puffer helfen ( BufferedInputStream, BufferedReader), Profiler ( VisualVM, JProfiler) und Zeitmessungen über System. currentTimeMillis (). Wir führen ein praktisches Experiment mit dem Lesen der Datei "bigfile.txt" durch, vergleichen die Geschwindigkeit mit und ohne Puffer, betrachten den Einfluss von SSD/HDD und Netzwerk und nennen typische Fehler.
    Verfügbar
  • NIO-Channels und ByteBuffer

    JAVA 25 SELF
    Level 41,Lektion 1
    Praktische Einführung in das nicht blockierende Ein-/Ausgabe von Java NIO: wir erläutern, worin sich Kanäle Channel und Puffer ByteBuffer von Streams InputStream/ OutputStream unterscheiden, wie man mit FileChannel liest und schreibt, über position()/ truncate() positioniert, mit den Pufferparametern ( capacity, limit, position, mark) arbeitet und zwischen allocate() und allocateDirect() wählt. Gezeigt werden Zero-Copy-Operationen transferTo()/ transferFrom() und typische Fehler wie ein vergessenes flip() und ein falscher Puffermodus.
    Verfügbar
  • Große Dateien: Chunking-Pattern

    JAVA 25 SELF
    Level 41,Lektion 2
    Wie man Dateien mit Dutzenden Gigabyte effizient verarbeitet, ohne OutOfMemoryError: in Stücke (Chunks) aufteilen, positionsbasiert über RandomAccessFile und FileChannel lesen, Aufgaben mit ExecutorService/ ForkJoinPool parallelisieren, und für einfaches Kopieren Zero-Copy über transferTo/ transferFrom nutzen. Wir besprechen die Wahl der Chunk-Größe, Zeilengrenzen, Synchronisation der Ergebnisse und typische Fehler.
    Verfügbar
  • Arbeiten mit großen Dateien: Chunking, Memory Mapping

    JAVA 25 SELF
    Level 41,Lektion 3
    Wie man riesige Dateien in Java sicher und schnell verarbeitet: in Teilen lesen (Chunking) über Streams und Puffer, die Puffergröße für Performance abstimmen, Dateiabbildung im Speicher über MappedByteBuffer und FileChannel für extrem schnellen wahlfreien Zugriff nutzen. Wir besprechen Vor- und Nachteile des Memory Mappings, Empfehlungen zu Ressourcen und Parallelität sowie typische Fehler (z. B. OutOfMemoryError, vergessene Deskriptoren, Überlappung von Chunks bei der Suche).
    Verfügbar
  • Archive/Komprimierung: java.util.zip

    JAVA 25 SELF
    Level 41,Lektion 4
    Praktische Vorlesung zur Arbeit mit Archiven und Komprimierung in Java: Wir machen uns mit dem Paket java.util.zip vertraut, den Streams ZipInputStream/ ZipOutputStream und der Random-Access-Klasse ZipFile, steuern die Komprimierungsstufen über Deflater ( 0… 9, DEFAULT_COMPRESSION), arbeiten mit GZIPInputStream/ GZIPOutputStream für einzelne Dateien, packen/entpacken Verzeichnisse mit Files.walk und Filtern via PathMatcher ( "glob:**/*.txt"). Wir sprechen über Sicherheit: Schutz vor Zip Slip durch Pfadnormalisierung und Größenkontrolle gegen die Zip-Bomb sowie bauen ein Mini-CLI „zip/unzip“ mit Mustern.
    Verfügbar
  • Einführung in die Serialisierung von Objekten: wozu sie gebraucht wird

    JAVA 25 SELF
    Level 42,Lektion 0
    Warum und wie man Objekte in Java „verpackt“: Wir verwandeln sie in einen Bytestrom und wieder zurück mithilfe von ObjectOutputStream/ ObjectInputStream, speichern Zustand zwischen Programmstarts, übertragen sie über das Netzwerk und cachen Ergebnisse. Wir beleuchten die Rolle des Interfaces Serializable, Feinheiten des Schlüsselworts transient und Zeichenketten wie "save.dat", besprechen Sicherheitsrisiken und Versionskompatibilität. Praxis: Mini‑Spielstand, Nachrichten Client↔Server und Caching von Berechnungen.
    Verfügbar
  • Schnittstelle Serializable: grundlegende Prinzipien

    JAVA 25 SELF
    Level 42,Lektion 1
    Wir behandeln die Grundlagen der Serialisierung in Java: das Marker-Interface java.io.Serializable, wie man eine Klasse mit implements Serializable kennzeichnet, Anforderungen an Felder ( static, transient), Schritt-für-Schritt-Beispiele für das Schreiben und Lesen von Objekten mit ObjectOutputStream/ ObjectInputStream, was „unter der Haube“ bei Aufrufen von writeObject/ readObject passiert, sowie typische Fehler (nicht serialisierbare Felder, innere Klassen, Verhalten von static-Feldern und die Klassenversion über serialVersionUID).
    Verfügbar
  • Standardformate der Serialisierung: binär und textbasiert

    JAVA 25 SELF
    Level 42,Lektion 2
    In der Vorlesung vergleichen wir die binäre Java-Serialisierung über die Klassen ObjectOutputStream und ObjectInputStream mit textbasierten Formaten ( JSON, XML): Funktionsprinzip, Geschwindigkeit und Kompaktheit, Versionskompatibilität und Sicherheit. Wir beleuchten Vorteile und Einschränkungen, zeigen Praxis mit Jackson (einschließlich Maven-Abhängigkeit) und geben Tipps, wann welches Format zu wählen ist, sowie typische Fehler.
    Verfügbar
  • ObjectOutputStream, ObjectInputStream: Arbeiten mit Streams

    JAVA 25 SELF
    Level 42,Lektion 3
    In der Vorlesung besprechen wir, wie man Objekte in Java mithilfe des Paar-Streams ObjectOutputStream und ObjectInputStream serialisiert und deserialisiert: Was ist ein Marker-Interface java.io.Serializable, wie funktionieren die Methoden writeObject() und readObject(), warum die Felder static und transient nicht in den Stream gelangen, welche Exceptions auftreten ( NotSerializableException, InvalidClassException) und welchen Einfluss serialVersionUID hat. In der Praxis serialisieren wir ein einzelnes Objekt und eine Liste von Objekten in eine Datei und gehen typische Fehler durch.
    Verfügbar
  • Serialisierung von Collections: List, Map, Set

    JAVA 25 SELF
    Level 42,Lektion 4
    Praktischer Leitfaden zur Serialisierung von Collections in Java: wie man List, Map, Set über ObjectOutputStream/ ObjectInputStream speichert und wiederherstellt; warum die meisten Collections bereits Serializable implementieren; Anforderungen an Elemente; Ordnungsverhalten in HashSet/ HashMap; Umgang mit verschachtelten und leeren Collections; Fallstricke ( InvalidClassException, serialVersionUID, transient/ static). Wir schließen mit einem vollständigen Beispiel einer „virtuellen Bibliothek“ ab.
    Verfügbar
  • Kontrolle über den Serialisierungsprozess: writeObject, readObject

    JAVA 25 SELF
    Level 43,Lektion 0
    Wie man die Standardserialisierung abfängt und den Prozess unter Kontrolle bringt: Wir verwenden private Methoden writeObject/ readObject mit strikten Signaturen ( private void writeObject( ObjectOutputStream out) throws IOException), rufen defaultWriteObject()/ defaultReadObject() auf, schließen Felder mittels transient aus, fügen Prüfsummen und Logs hinzu und vergessen serialVersionUID sowie Versionskompatibilität nicht. Wir besprechen typische Fehler, den Umgang mit ObjectOutputStream/ ObjectInputStream und praktische Beispiele.
    Verfügbar
  • transient-Felder, serialVersionUID

    JAVA 25 SELF
    Level 43,Lektion 1
    Praktischer Leitfaden zur Serialisierung in Java: wann und wie man transient verwendet, um Felder aus dem Stream auszuschließen; was bei der Deserialisierung passiert (Standardwerte); wie man den Zustand in der Methode readObject wiederherstellt; was serialVersionUID ist, wie man es deklariert ( private static final long serialVersionUID = 1L), wann man es ändert und warum man es besser explizit setzt. Gezeigt werden funktionierende Beispiele, riskante Szenarien und typische Fehler.
    Verfügbar
  • 1
  • ...
  • 18
  • 19
  • 20
  • 21
  • 22
  • ...
  • 30
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe bei Aufgaben
  • Preise
  • Java-Syntax
Community
  • Nutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsgeschichten
  • Aktivität
  • Partnerprogramm
Unternehmen
  • Über uns
  • Kontakte
  • Bewertungen
  • Presse
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym ist ein Online-Kurs zum Erlernen der Java-Programmierung von Grund auf. Dieser Kurs ist eine perfekte Möglichkeit, Java als Anfänger zu meistern. Er enthält über 1200 Aufgaben mit sofortiger Überprüfung und einen wesentlichen Umfang an Java-Grundlagentheorie. Um Ihren Lernerfolg zu unterstützen, haben wir eine Reihe motivierender Funktionen implementiert: Quizze, Programmierprojekte, Inhalte zum effizienten Lernen und Karriereinformationen für Java-Entwickler.
Folgen Sie uns
Interface-Sprache
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
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym
MastercardVisa
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym