Java von Kopf bis Fuß, 3rd Edition

Book description

Java von Kopf bis Fuß - jetzt vollständig überarbeitet und aktualisiert - ist eine umfassende Erlebnistour durch die objektorientierte Programmierung und Java. Ganz nach modernen Lernprinzipien entworfen, führt Sie dieses Buch von den Grundlagen der Sprache zu fortgeschrittenen Themen wie Lambdas, Streams, Threads, Generics, Threading oder Networking. Und das Beste ist: Sie werden dabei lernen, wirklich wie erfahrene Entwickler:innen zu denken.

Auf Ihrem Weg dorthin werden Sie nicht nur lesen. Sie knacken Rätsel, spielen, lösen Krimis und kommen mit Java auf eine Weise zusammen, die Sie sich nicht hätten träumen lassen. Aber natürlich werden Sie auch Unmengen echten Java-Code schreiben.

Mithilfe zahlreicher Übungen, Puzzle, Interviews und Abbildungen lädt dieses Buch Ihnen das Wissen direkt ins Hirn. Wenn Sie sich gerne langweilen, besorgen Sie sich lieber ein anderes Buch. Aber wenn Sie wirklich Java lernen wollen, ist alles andere kalter Kaffee.

Table of contents

  1. Cover
  2. Titel
  3. Impressum
  4. Widmung
  5. Die Autoren
  6. Inhaltsverzeichnis
  7. i Einführung
    1. Für wen ist dieses Buch?
    2. Wir wissen, was Sie denken.
    3. Und wir wissen, was Ihr Gehirn gerade denkt.
    4. Das haben WIR getan
    5. Was Sie für dieses Buch brauchen
    6. Die Fachgutachter der dritten englischen Auflage
    7. Die Fachgutachter der zweiten englischen Auflage
  8. 1 Die Oberfläche durchbrechen
    1. Wie Java funktioniert
    2. Was Sie in Java tun werden
    3. Eine sehr kurze Geschichte von Java
    4. Codestruktur in Java
    5. Eine Klasse mit einer main()-Methode schreiben
    6. Einfache boolesche Tests
    7. Bedingte Verzweigungen
    8. Eine ernsthafte Geschäftsanwendung schreiben
    9. Der Phras-O-Mat
    10. Übungen
  9. 2 Die Reise nach Objectville
    1. Stuhlkriege
    2. Ihr erstes Objekt erstellen
    3. Die Film-Objekte erstellen und testen
    4. Schnell! Nichts wie raus aus main()!
    5. Das Ratespiel ausführen
    6. Übungen
  10. 3 Verstehen Sie Ihre Variablen
    1. Eine Variable deklarieren
    2. »Einen doppelten Espresso bitte, ach nein, doch lieber einen int.«
    3. Finger weg von Schlüsselwörtern!
    4. Ein Dog-Objekt kontrollieren
    5. Eine Objektreferenz ist einfach ein anderer Variablenwert.
    6. Das Leben auf dem Garbage Collectible Heap
    7. Ein Array ist wie ein Schrank voller Tassen … ähm Becher
    8. Ein Dog-Beispiel
    9. Übungen
  11. 4 Wie sich Objekte verhalten
    1. Erinnern Sie sich: Eine Klasse beschreibt, was ein Objekt weiß und was es tut.
    2. Die Größe beeinflusst das Bellen
    3. Sie können einer Methode Informationen schicken
    4. Sie können von Methoden etwas zurückbekommen
    5. Sie können einer Methode mehr als eine Sache übergeben
    6. Parameter und Rückgabetypen
    7. Kapselung
    8. Wie verhalten sich Objekte in einem Array?
    9. Instanzvariablen deklarieren und initialisieren
    10. Variablen vergleichen (elementare und Referenztypen)
    11. Übungen
  12. 5 Methoden mit Superkräften
    1. Ein Spiel im Schiffe-versenken-Style: »Startups versenken«
    2. Eine Klasse entwickeln
    3. Die Methodenimplementierungen schreiben
    4. Den Testcode für die SimpleStartup-Klasse schreiben
    5. Die checkYourself()-Methode
    6. Vorcode für die SimpleStartupGame-Klasse
    7. Die main()-Methode des Spiels
    8. Dann spielen wir mal …
    9. Mehr über for-Schleifen
    10. Die verbesserte for-Schleife
    11. Elementare Typen casten
    12. Übungen
  13. 6 Die Java-Bibliothek verwenden
    1. Das vorige Kapitel endete mit einem Cliffhanger – nämlich einem Bug.
    2. Wachen Sie endlich auf und sehen Sie der Java-API ins Auge
    3. Einige Dinge, die Sie mit ArrayList tun können
    4. ArrayList mit einem regulären Array vergleichen
    5. Bauen wir das RICHTIGE Spiel: »Startups versenken«
    6. Vorcode für die echte StartupBust-Klasse
    7. Die finale Version der Startup-Klasse
    8. Boolesche Ausdrücke mit Superkräften
    9. Die Bibliothek (Java-API) verwenden
    10. Übungen
  14. 7 Besser leben in Objectville
    1. Stuhlkriege neu aufgelegt …
    2. Vererbung verstehen
    3. Entwerfen wir einen Vererbungsbaum für ein Tiersimulationsprogramm
    4. Weitere Vererbungsmöglichkeiten finden
    5. IST EIN und HAT EIN verwenden
    6. Woher wissen Sie, dass Ihre Vererbungshierarchie korrekt ist?
    7. Vererbung kann man gut gebrauchen, man kann sie aber auch missbrauchen!
    8. Den Vertrag einhalten: Regeln für das Überschreiben
    9. Eine Methode überladen
    10. Übungen
  15. 8 Ernsthafte Polymorphie
    1. Haben wir etwas vergessen, als wir das hier entworfen haben?
    2. Der Compiler verhindert die Instanziierung von abstrakten Klassen
    3. Abstrakt vs. konkret
    4. Abstrakte Methoden MÜSSEN implementiert werden
    5. Polymorphie in Aktion
    6. Was ist mit Nicht-Animals? Warum machen wir die Klasse nicht so allgemein, dass sie mit allem umgehen kann?
    7. Wenn ein Dog sich nicht wie ein Dog verhält
    8. Erforschen wir ein paar Entwurfsoptionen
    9. Das Pet-Interface erstellen und implementieren
    10. Die Superklassenversion einer Methode aufrufen
    11. Übungen
  16. 9 Leben und Sterben eines Objekts
    1. Der Stack und der Heap: wo das Leben spielt
    2. Methoden werden gestapelt
    3. Was ist mit lokalen Variablen, die Objekte sind?
    4. Das Wunder der Objekterstellung
    5. Ein Duck-Objekt konstruieren
    6. Erstellt der Compiler nicht immer einen argumentlosen Konstruktor für Sie?
    7. Kurzer Rückblick. Vier Dinge, die Sie sich zu Konstruktoren merken sollten!
    8. Die Rolle der Superklassenkonstruktoren im Leben eines Objekts
    9. Kann ein Kind vor seinen Eltern existieren?
    10. Was ist mit Referenzvariablen?
    11. Mir gefällt nicht, worauf das hinausläuft.
    12. Übungen
  17. 10 Zahlen, bitte!
    1. MATH-Methoden: Näher werden Sie einer globalen Methode nie wieder kommen
    2. Der Unterschied zwischen regulären (nicht statischen) und statischen Methoden
    3. Eine statische Variable initialisieren
    4. Math-Methoden
    5. Elementartypen verpacken
    6. Autoboxing funktioniert fast überall
    7. Und umgekehrt … eine elementare Zahl in einen String verwandeln
    8. Zahlenformatierung
    9. Der Format-Spezifizierer
    10. Übungen
  18. 11 Datenstrukturen
    1. Die java.util-API, List und Collections entdecken
    2. Generics sorgen für mehr Typsicherheit
    3. Erneut ein Blick auf die sort()-Methode
    4. Die neue, verbesserte Song-Klasse
    5. Mit Comparators sortieren
    6. Die Jukebox mit Lambdas aktualisieren
    7. Ein HashSet anstelle einer ArrayList verwenden
    8. Was Sie über TreeSet wissen MÜSSEN …
    9. Nachdem wir Lists und Sets gesehen haben, verwenden wir jetzt eine Map
    10. Endlich wieder zurück zu Generics
    11. Lösung zur Übung
  19. 12 Lambdas und Streams: Was – nicht wie!
    1. Sagen Sie dem Computer, WAS Sie wollen
    2. Wenn for-Schleifen schieflaufen
    3. Einführung in die Streams-API
    4. Ergebnisse von einem Stream erhalten
    5. Richtlinien für die Arbeit mit Streams
    6. Hallo Lambda, mein (nicht ganz so) alter Freund
    7. Erkennen Sie funktionale Interfaces
    8. Lous Herausforderung Nr. 1: Finde alle »Rock«-Songs
    9. Lous Herausforderung Nr. 2: Alle Genres auflisten
    10. Übungen
  20. 13 Riskantes Verhalten
    1. Bauen wir eine Musikmaschine
    2. Zuerst brauchen wir einen Sequencer
    3. Eine Exception ist ein Objekt … des Typs Exception
    4. Flusskontrolle in try/catch-Blöcken
    5. Eine Methode kann mehr als eine Exception werfen
    6. Mehrfache catch-Blöcke müssen von klein nach groß geordnet werden
    7. Ausweichen (durch Deklaration) verzögert nur das Unausweichliche
    8. Codeküche
    9. Version 1: Ihre allererste Soundplayer-App
    10. Version 2: Kommandozeilenargumente für das Experimentieren mit Sounds
    11. Übungen
  21. 14 Innen hui, außen GUI
    1. Alles beginnt mit einem Fenster
    2. Wie man an ein Benutzer-Event kommt
    3. Listener, Quellen und Events
    4. Machen Sie sich Ihr eigenes Grafik-Widget
    5. Spaß mit paintComponent()
    6. GUI-Layouts: mehrere Widgets in einen Frame packen
    7. Die Rettung: Innere Klassen!
    8. Rettung durch Lambdas!
    9. Innere Klassen für Animationen einsetzen
    10. Eine einfachere Möglichkeit, Messages und Events zu erstellen
    11. Übungen
  22. 15 Mehr Schwung mit Swing
    1. Swing-Komponenten
    2. Layoutmanager
    3. Die drei wichtigsten Layoutmanager: Border, Flow und Box
    4. Es gibt keine Dummen Fragen
    5. Spielen mit Swing-Komponenten
    6. Codeküche
    7. Die BeatBox
    8. Übungen
  23. 16 Objekte (und Text) speichern
    1. Ein serialisiertes Objekt in eine Datei schreiben
    2. Soll eine Klasse serialisierbar sein, implementieren Sie Serializable
    3. Deserialisierung: ein Objekt wiederherstellen
    4. Version-ID: Ein großes Serialisierungsproblem
    5. Einen String in ein Textdatei schreiben
    6. Aus einer Textdatei lesen
    7. Quiz Card Player (Code grob skizziert)
    8. Path, Paths und Files (mit Verzeichnissen spielen)
    9. Endlich, ein genauer Blick auf finally
    10. Ein BeatBox-Pattern speichern
    11. Übungen
  24. 17 Eine Verbindung herstellen
    1. Verbinden, senden, empfangen
    2. Der DailyAdviceClient (»Tipp des Tages«)
    3. Ein einfaches Serverprogramm schreiben
    4. Java hat mehrere Threads, aber nur eine Thread-Klasse
    5. Die drei Zustände eines neuen Threads
    6. Einen Thread schlafen schicken
    7. Zwei (oder mehr!) Threads erzeugen und starten
    8. Feierabend am Thread-Pool
    9. Der neue und verbesserte SimpleChatClient
    10. Übungen
  25. 18 Nebenläufigkeitsprobleme behandeln
    1. Das Ryan-und-Monica-Problem, in Code ausgedrückt
    2. Das Schloss eines Objekts verwenden
    3. Das gefürchtete »Problem der verlorenen Aktualisierung«
    4. Die increment()-Methode atomar machen. Synchronisieren Sie sie!
    5. Blockade, eine tödliche Seite der Synchronisierung
    6. »Vergleichen und tauschen« mit atomaren Variablen
    7. Immutable Objekte verwenden
    8. Mehr Probleme mit geteilten Daten
    9. Verwenden Sie eine threadsichere Datenstruktur
    10. Übungen
  26. A Anhang A
    1. Das endgültige BeatBox-Clientprogramm
    2. Das endgültige BeatBox-Serverprogramm
  27. B Anhang B
    1. #11 JShell (Java REPL)
    2. #10 Packages
    3. #9 Immutabilität in Strings und Wrappern
    4. #8 Zugriffsebenen und Zugriffsmodifier (wer sieht was)
    5. #7 Varargs
    6. #6 Annotationen
    7. #5 Lambdas und Maps
    8. #4 Parallele Streams
    9. #3 Enumerations (enumerierte Typen/Enums)
    10. #2 Lokale Typinferenz für Variablen (var)
    11. #1 Records
  28. Fußnoten
  29. i Index

Product information

  • Title: Java von Kopf bis Fuß, 3rd Edition
  • Author(s): Kathy Sierra, Bert Bates, Trisha Gee
  • Release date: January 2023
  • Publisher(s): dpunkt
  • ISBN: 9783960092063