Java von Kopf bis Fuß - Kathy Sierra - E-Book

Java von Kopf bis Fuß E-Book

Kathy Sierra

0,0

Beschreibung

Java lernen - gehirnfreundlich und mit Spaß!

  • Der Bestseller in Neuauflage, rundum überarbeitet und aktualisiert
  • Eine komplette Einführung in die objektorientierte Programmierung
  • Vermittelt moderne Ansätze für ein schlankeres, schnelleres und einfacher zu wartendes Java von heute
  • Mit einzigartiger Von-Kopf-bis-Fuß-Didaktik: Ein besonderes Lernerlebnis durch die spielerische, visuell anregende Vermittlung von Wissen

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.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 769

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Java™ von Kopf bis Fuß

Kathy SierraBert BatesTrisha Gee

Deutsche Übersetzung vonJørgen W. Lang

Kathy Sierra, Bert Bates, Trisha Gee

Lektorat: Alexandra Follenius

Übersetzung: Jørgen W. Lang

Copy-Editing: Sibylle Feldmann, www.richtiger-text.de

Satz: Ulrich Borstelmann, www.borstelmann.de

Herstellung: Stefanie Weidner

Umschlaggestaltung: Ellie Volckhausen, Susan Thompson, Michael Oréal, www.oreal.de

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

Print     978-3-96009-206-3

PDF      978-3-96010-748-4

ePub     978-3-96010-749-1

mobi     978-3-96010-750-7

2. Auflage 2023, Übersetzung der 3. englischen Auflage

Translation Copyright für die deutschsprachige Ausgabe © 2023 by dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Authorized German translation of the English edition of Head First JavaTM 3rd Edition, ISBN 9781491910771 © 2022 Kathy Sierra, Bert Bates, and O‘Reilly Media, Inc.

This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.

Dieses Buch erscheint in Kooperation mit O’Reilly Media, Inc. unter dem Imprint »O’REILLY«.

O’REILLY ist ein Markenzeichen und eine eingetragene Marke von O’Reilly Media, Inc. und wird mit Einwilligung des Eigentümers verwendet.

Hinweis:

Dieses Buch wurde auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt.

Der Umwelt zuliebe verzichten wir zusätzlich auf die Einschweißfolie.

Schreiben Sie uns:

Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.

Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autorinnen und Autor noch Verlag noch Übersetzer können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Coypright und Urheberrechte:

Die durch die dpunkt.verlag GmbH vertriebenen digitalen Inhalte sind urheberrechtlich geschützt. Der Nutzer verpflichtet sich, die Urheberrechte anzuerkennen und einzuhalten. Es werden keine Urheber-, Nutzungs- und sonstigen Schutzrechte an den Inhalten auf den Nutzer übertragen. Der Nutzer ist nur berechtigt, den abgerufenen Inhalt zu eigenen Zwecken zu nutzen. Er ist nicht berechtigt, den Inhalt im Internet, in Intranets, in Extranets oder sonst wie Dritten zur Verwertung zur Verfügung zu stellen. Eine öffentliche Wiedergabe oder sonstige Weiterveröffentlichung und eine gewerbliche Vervielfäl-tigung der Inhalte wird ausdrücklich ausgeschlossen. Der Nutzer darf Urheberrechtsvermerke, Markenzeichen und andere Rechtsvorbehalte im abgerufenen Inhalt nicht entfernen.

Von Kathy und Bert:

Für unsere Gehirne – dafür, dass sie immer da sind.

(trotz schwacher Beweise)

Von Trisha:

Für Isra – dafür, dass sie immer da ist.

(mit einer Menge an Beweisen)

Die Autorin und der Autor von Java von Kopf bis Fuß und die Schöpfer der Head-First-Buchreihe

Kathy Sierra

Kathy interessiert sich für Lerntheorie seit ihrer Zeit als Spieleentwicklerin für Virgin, MGM und Amblin’ und als Dozentin für New Media Authoring an der UCLA. Sie war Master-Java-Trainerin für Sun Microsystems, und sie gründete JavaRanch.com (jetzt CodeRanch.com), das in den Jahren 2003 und 2004 den Jolt Cola Productivity Award gewann. 2015 erhielt sie den Electronic Frontier Foundation’s Pioneer Award für ihre Arbeit zur Schaffung kompetenter Nutzer und den Aufbau nachhaltiger Gemeinschaften.

In jüngster Zeit konzentriert sich Kathy auf modernste Bewegungswissenschaften und das Coaching zum Erwerb von Fähigkeiten, bekannt als Ecological Dynamics oder »Eco-D«. Ihre Arbeit, bei der sie Eco-D für das Training von Pferden einsetzt, führt zu einem weitaus humaneren Ansatz in der Reitkunst, was die einen erfreut (und die anderen, traurigerweise, verwirrt). Die Pferde, die das Glück haben, dass ihre Besitzer Kathys Ansatz anwenden, sind zufriedener, autonomer, gesünder und sportlicher als ihre traditionell trainierten Artgenossen.

Sie finden Kathy auf Instagram unter @pantherflows.

Bert Bates

Bevor Bert Autor wurde, war er Entwickler, spezialisiert auf KI der alten Schule (hauptsächlich Expertensysteme), Echtzeit-Betriebssysteme und komplexe Planungssysteme.

Im Jahr 2003 schrieben Bert und Kathy Java von Kopf bis Fuß und starteten damit die Head-First-Reihe. Seitdem hat Bert weitere Java-Bücher geschrieben. Außerdem hat er Sun Microsystems und Oracle bei vielen ihrer Java-Zertifizierungen beraten. Heutzutage arbeitet er mit Coaches, Lehrern, Professorinnen, Autoren und Herausgeberinnen und hilft ihnen, den Lernenden ein noch besseres Training zu bieten.

Bert ist Go-Spieler und musste 2016 mit Schrecken (und Faszination) miterleben, wie AlphaGo Lee Sedol schlug. Neuerdings verwendet er Eco-D (Ecological Dynamics), um sein Golfspiel zu verbessern und seinen Papagei Bokeh zu trainieren.

Bert hat das große Glück, Trisha Gee seit mehr als acht Jahren zu kennen, und die Head-First-Buchreihe (Von Kopf bis Fuß) kann sich glücklich schätzen, Trisha zu ihren Autorinnen zu zählen.

Sie erreichen Bert per E-Mail unter [email protected].

Co-Autorin von Java von Kopf bis Fuß, dritte englische Auflage

Trisha Gee

Trisha arbeitet bereits seit 1997 mit Java, und ihre Universität war vorausschauend genug, diese »strahlend neue« Sprache für den Informatikunterricht einzuführen. Seitdem arbeitet sie als Entwicklerin und Beraterin, erstellt Java-Applikationen für eine Reihe verschiedener Branchen, beispielsweise Bankenwesen, Fertigung und Non-Profit, sowie Low-Latency-Anwendungen für den Handel im Finanzsektor.

Trisha teilt leidenschaftlich gern das Wissen, das sie während ihrer Jahre als Entwicklerin auf die harte Tour erworben hat. Also wurde sie Developer Advocate, um eine Ausrede dafür zu haben, Blogposts zu schreiben, auf Konferenzen zu sprechen und Videos zu erstellen, mit denen sie einen Teil ihres Wissens weitergeben kann. Sie verbrachte fünf Jahre als Java Developer Advocate bei JetBrains und weitere zwei Jahre als Leiterin des JetBrains-Java-Advocacy-Teams. Während dieser Zeit lernte sie eine Menge über die Probleme, mit denen echte Java-Entwickler sich herumschlagen müssen.

In den vergangenen acht (!) Jahren hat Trisha immer mal wieder mit Bert darüber gesprochen, Java von Kopf bis Fuß endlich zu aktualisieren. Sie erinnert sich noch sehr gerne an die wöchentlichen Telefonate. Der regelmäßige Kontakt mit einem so kenntnisreichen und warmherzigen Menschen wie Bert half ihr, nicht verrückt zu werden. Berts und Kathys Ansatz, das Lernen zu fördern, bildet den Kern dessen, was sie in den vergangenen zehn Jahren zu erreichen versuchte.

Sie finden Trisha auf Twitter unter @trisha_gee.

Über den Übersetzer dieses Buchs

Jørgen W. Lang lebt und arbeitet als freier Autor (»CSS Kochbuch«) und Übersetzer in Oldenburg/Niedersachsen. Mitte der Neunzigerjahre des vergangenen Jahrhunderts begann er, sich mit dem damals noch jungen World Wide Web und seinen Möglichkeiten zu beschäftigen. Pünktlich zum Jahrtausendwendejahr erschien seine erste Übersetzung für den O’Reilly Verlag. Mittlerweile ist der Umfang seiner Übersetzungen auf mehr als 10.000 Seiten angewachsen.

Mit großer Energie und Ausdauer bringt Jørgen seit fast schon zwei Jahrzehnten Webseiten bei, das zu tun, was von ihnen erwartet wird – unabhängig davon, auf welchem Gerät sie betrachtet werden (elektrische Zahnbürsten ausgenommen).

Das zweite Standbein von Jørgen Lang ist die Musik. Außerhalb der Welt der semantischen Elemente, Selektoren und Objekte hat er sich einen Namen als hervorragender Gitarrist, Sänger, Komponist und Arrangeur gemacht und kann auf eine Vielzahl veröffentlichter Alben und mehrere Hundert Konzerte in aller Welt (z. B. für die UNESCO in Seoul) zurückblicken.

Inhaltsverzeichnis

Der Inhalt (im Überblick)

 

Einführung

1

Die Oberfläche durchbrechen: Tauchen Sie ein: eine Kostprobe

2

Die Reise nach Objectville: Klassen und Objekte

3

Verstehen Sie Ihre Variablen: Elementare Datentypen und Referenzen

4

Wie sich Objekte verhalten: Methoden benutzen Instanzvariablen

5

Methoden mit Superkräften: Ein Programm schreiben

6

Die Java-Bibliothek verwenden: Die Java-API kennenlernen

7

Besser leben in Objectville: Vererbung und Polymorphie

8

Ernsthafte Polymorphie: Interfaces und abstrakte Klassen

9

Leben und Sterben eines Objekts: Konstruktoren und Garbage Collection

10

Zahlen, bitte!: Zahlen und Statisches

11

Datenstrukturen: Collections mit Generics

12

Was – nicht wie!: Lambdas und Streams

13

Riskantes Verhalten: Exception-Handling

14

Innen hui, außen GUI: Grafische Benutzeroberflächen

15

Mehr Schwung mit Swing: Swing im Einsatz

16

Objekte (und Text) speichern: Serialisierung und Datei-I/O

17

Eine Verbindung herstellen: Netzwerkprogrammierung und Threads

18

Nebenläufigkeitsprobleme behandeln: Konkurrenzprobleme und immutable Daten

A

Anhang A: Die finale Codeküche

B

Anhang B: Die (mehr als) zehn wichtigsten Themen, die es nicht ins Buch geschafft haben …

 

Index

Der Inhalt (jetzt ausführlich)

iEinführung

Ihr Gehirn und Java. Sie versuchen, etwas zu lernen, und Ihr Hirn tut sein Bestes, damit das Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten lieber ordentlich Platz für wichtigere Dinge lassen, z. B. für das Wissen, welche Tiere einem gefährlich werden könnten, oder dass es eine ganz schlechte Idee ist, nackt Snowboard zu fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen, dass Ihr Leben davon abhängt, etwas über Java zu wissen?

Für wen ist dieses Buch?

Wir wissen, was Sie denken.

Und wir wissen, was Ihr Gehirn gerade denkt.

Das haben WIR getan

Was Sie für dieses Buch brauchen

Die Fachgutachter der dritten englischen Auflage

Die Fachgutachter der zweiten englischen Auflage

1Die Oberfläche durchbrechen

Java bringt Sie an neue Orte. Seit seiner bescheidenen Veröffentlichung in der (schwächlichen) Version 1.02 hat Java Programmierer mit seiner freundlichen Syntax, seinen objektorientierten Features, der Speicherverwaltung und vor allem mit dem Versprechen auf Portabilität verführt. Wir machen mal eine kleine Kostprobe und schreiben ein bisschen Code, kompilieren ihn und lassen ihn laufen. Wir sprechen über die Syntax, Schleifen, Verzweigungen und alles, was Java so cool macht. Springen Sie rein!

Wie Java funktioniert

Was Sie in Java tun werden

Eine sehr kurze Geschichte von Java

Codestruktur in Java

Eine Klasse mit einer main()-Methode schreiben

Einfache boolesche Tests

Bedingte Verzweigungen

Eine ernsthafte Geschäftsanwendung schreiben

Der Phras-O-Mat

Übungen

2Die Reise nach Objectville

Ich dachte, hier gibt’s Objekte. In Kapitel 1 haben wir den ganzen Code in die main()-Methode gepackt. Das ist jedoch nicht besonders objektorientiert – eigentlich überhaupt nicht. Aber jetzt ist endlich die Zeit gekommen, die prozedurale Welt hinter uns zu lassen. Nichts wie raus aus main() und ran an die Erstellung unserer eigenen Objekte! Wir werden erfahren, warum die objektorientierte Entwicklung in Java so viel Spaß macht. Außerdem werfen wir einen Blick auf den Unterschied zwischen einer Klasse und einem Objekt und darauf, wie Objekte Ihr Leben verbessern können.

Stuhlkriege

Ihr erstes Objekt erstellen

Die Film-Objekte erstellen und testen

Schnell! Nichts wie raus aus main()!

Das Ratespiel ausführen

Übungen

3Verstehen Sie Ihre Variablen

Variablen gibt es in zwei Geschmacksrichtungen: elementare Typen und Referenztypen. Das Leben kann doch nicht nur aus Integer-Werten, Strings und Arrays bestehen! Wie wäre es mit einem HaustierBesitzer-Objekt und einer Instanzvariablen vom Typ Hund? Oder mit einem Auto-Objekt, das einen Motor hat? In diesem Kapitel werden wir die Geheimnisse der Java-Typen lüften und uns ansehen, was man alles als Variablen deklarieren kann, was Sie in einer Variablen speichern und mit einer Variablen tun können. Zum Schluss lernen Sie das Leben auf dem Garbage Collectible Heap hautnah kennen.

Eine Variable deklarieren

»Einen doppelten Espresso bitte, ach nein, doch lieber einen int.«

Finger weg von Schlüsselwörtern!

Ein Dog-Objekt kontrollieren

Eine Objektreferenz ist einfach ein anderer Variablenwert.

Das Leben auf dem Garbage Collectible Heap

Ein Array ist wie ein Schrank voller Tassen … ähm Becher

Ein Dog-Beispiel

Übungen

4Wie sich Objekte verhalten

Zustand beeinflusst Verhalten, Verhalten beeinflusst Zustände. Wir wissen, dass Objekte über Zustand und Verhalten verfügen, die durch Instanzvariablen und Methoden repräsentiert werden. Nun sehen wir uns an, in welcher Beziehung Zustände und Verhalten zueinander stehen. Objekte haben ein Verhalten, das sich auf ihre Zustände auswirkt. Anders gesagt, Methoden benutzen die Werte von Instanzvariablen. Ein Beispiel: »Wenn der Hund weniger als 7 Kilo wiegt, erzeuge ein Kläffgeräusch, sonst …« oder »erhöhe das Gewicht um 5«. Also los, lassen Sie uns ein paar Zustände ändern.

Erinnern Sie sich: Eine Klasse beschreibt, was ein Objekt weiß und was es tut.

Die Größe beeinflusst das Bellen

Sie können einer Methode Informationen schicken

Sie können von Methoden etwas zurückbekommen

Sie können einer Methode mehr als eine Sache übergeben

Parameter und Rückgabetypen

Kapselung

Wie verhalten sich Objekte in einem Array?

Instanzvariablen deklarieren und initialisieren

Variablen vergleichen (elementare und Referenztypen)

Übungen

Java ist Pass-by-Value.

Das bedeutet Pass-by-Copy.

5Methoden mit Superkräften

Jetzt wollen wir unsere Methoden mal etwas aufmöbeln. Wir haben uns mit Variablen beschäftigt, mit ein paar Objekten herumgespielt und ein bisschen Code geschrieben. Aber wir brauchen Werkzeuge. Wie Operatoren. Und Schleifen. Sie könnten nützlich sein, um Zufallszahlen zu erzeugen. Oder einen String in einen int umzuwandeln, ja, das wäre cool. Und warum lernen wir das alles nicht, indem wir sofort etwas Reales bauen? Dann sehen wir, wie es ist, ein Programm von Grund auf neu zu coden (und zu testen). Vielleicht ein Spiel wie Schiffe versenken.

Ein Spiel im Schiffe-versenken-Style: »Startups versenken«

Eine Klasse entwickeln

Die Methodenimplementierungen schreiben

Den Testcode für die SimpleStartup-Klasse schreiben

Die checkYourself()-Methode

Vorcode für die SimpleStartupGame-Klasse

Die main()-Methode des Spiels

Dann spielen wir mal …

Mehr über for-Schleifen

Die verbesserte for-Schleife

Elementare Typen casten

Übungen

Lasst uns ein Startupsversenken-Spiel bauen!

6Die Java-Bibliothek verwenden

Java wird mit Hunderten vorgefertigter Klassen ausgeliefert. Sie müssen das Rad nicht neu erfinden, wenn Sie wissen, wie Sie das Benötigte in der Java-Bibliothek, der sogenannten Java-API, finden können. Sie haben Besseres zu tun. Wenn Sie Code schreiben, reicht es völlig, wenn Sie sich nur auf die Teile konzentrieren, die bei Ihrer Anwendung besonders sind. Die Java-Kernbibliothek ist ein gigantischer Haufen Klassen, die nur darauf warten, dass Sie sie als Bausteine für Ihre eigenen Programme verwenden.

Das vorige Kapitel endete mit einem Cliffhanger – nämlich einem Bug.

Wachen Sie endlich auf und sehen Sie der Java-API ins Auge

Einige Dinge, die Sie mit ArrayList tun können

ArrayList mit einem regulären Array vergleichen

Bauen wir das RICHTIGE Spiel: »Startups versenken«

Vorcode für die echte StartupBust-Klasse

Die finale Version der Startup-Klasse

Boolesche Ausdrücke mit Superkräften

Die Bibliothek (Java-API) verwenden

Übungen

»Gut zu wissen, dass das java. util-Package eine ArrayList-Klasse bereitstellt. Selbst hätte ich das aber nicht herausgefunden.«

- Julia, 31, Hand-Model

7Besser leben in Objectville

Planen Sie Ihre Programme mit der Zukunft im Blick. Was wäre, wenn Sie Code schreiben könnten, den ein andererproblemlos erweitern kann? Und was, wenn Ihr Code flexibel genug für diese lästigen Änderungen der Spezifikation in letzter Minute wäre? Wenn Sie auf den Polymorphie-Zug springen, lernen Sie die fünf Schritte zu besserem Klassendesign, die drei Tricks der Polymorphie und die acht Wege, Code flexibel zu machen. Dazu – wenn Sie sofort zugreifen – eine Bonusstunde mit den vier Tipps zur Nutzung von Vererbung inklusive.

Stuhlkriege neu aufgelegt …

Vererbung verstehen

Entwerfen wir einen Vererbungsbaum für ein Tiersimulationsprogramm

Weitere Vererbungsmöglichkeiten finden

IST EIN und HAT EIN verwenden

Woher wissen Sie, dass Ihre Vererbungshierarchie korrekt ist?

Vererbung kann man gut gebrauchen, man kann sie aber auch missbrauchen!

Den Vertrag einhalten: Regeln für das Überschreiben

Eine Methode überladen

Übungen

Damit es hängen bleibt.

Brüderchen, komm tanz mit mir. Jeder Tanzbär ist-ein Tier.

Einmal hin, einmal her, nicht jedes Tier ist auch ein Bär.

Jetzt sind Sie an der Reihe. Machen Sie eins, das die Einseitigkeit einer IST-EIN-Beziehung zeigt. Denken Sie daran: Wenn X Y erweitert, muss X IST EIN Y einen Sinn ergeben …

8Ernsthafte Polymorphie

Vererbung ist nur der Anfang. Um Polymorphie nutzen zu können, benötigen wir Interfaces. Wir müssen über einfache Vererbung hinausgehen und eine Stufe der Flexibilität erreichen, die man nur erhält, wenn man Schnittstellendefinitionen als Ausgangsbasis für den Entwurf und die Programmierung nimmt. Was eine Java-Schnittstelle ist? Eine zu 100 % abstrakte Klasse. Was eine abstrakte Klasse ist? Das ist eine Klasse, die nicht instanziiert werden kann. Und wozu soll die gut sein? Lesen Sie das Kapitel …

Haben wir etwas vergessen, als wir das hier entworfen haben?

Der Compiler verhindert die Instanziierung von abstrakten Klassen

Abstrakt vs. konkret

Abstrakte Methoden MÜSSEN implementiert werden

Polymorphie in Aktion

Was ist mit Nicht-Animals? Warum machen wir die Klasse nicht so allgemein, dass sie mit allem umgehen kann?

Wenn ein Dog sich nicht wie ein Dog verhält

Erforschen wir ein paar Entwurfsoptionen

Das Pet-Interface erstellen und implementieren

Die Superklassenversion einer Methode aufrufen

Übungen

9Leben und Sterben eines Objekts

Objekte werden geboren und Objekte sterben. Sie herrschen über das Leben eines Objekts. Sie entscheiden, wie und wann es konstruiert wird. Sie entscheiden, wann es zerstört wird. Der Garbage Collector (gc) will den Speicher wiederhaben. Wir sehen uns an, wie Objekte erzeugt werden, wo sie leben und wie man sie effizient gehen lässt. Das bedeutet, dass wir über den Heap, den Stack, Geltungsbereiche, Konstruktoren, Superklassenkonstruktoren, Nullreferenzen und mehr reden werden.

Der Stack und der Heap: wo das Leben spielt

Methoden werden gestapelt

Was ist mit lokalen Variablen, die Objekte sind?

Das Wunder der Objekterstellung

Ein Duck-Objekt konstruieren

Erstellt der Compiler nicht immer einen argumentlosen Konstruktor für Sie?

Kurzer Rückblick. Vier Dinge, die Sie sich zu Konstruktoren merken sollten!

Die Rolle der Superklassenkonstruktoren im Leben eines Objekts

Kann ein Kind vor seinen Eltern existieren?

Was ist mit Referenzvariablen?

Mir gefällt nicht, worauf das hinausläuft.

Übungen

»d« wurde auf null gesetzt. Das ist wie eine Fernbedienung, die nicht programmiert ist. Solange »d« nicht reprogrammiert ist (ihr also noch kein neues Objekt zugewiesen wurde), dürfen Sie nicht einmal den Punktoperator darauf anwenden.

10Zahlen, bitte!

Rechnen Sie’s aus. In der Java-API gibt es eine Menge praktischer Methoden für Absolutbeträge, zum Runden, zur Extremwertbestimmung etc. Aber wie sieht es mit der Formatierung aus? Vielleicht möchten Sie, dass Ihre Zahlen mit exakt zwei Nachkommastellen ausgegeben oder dass große Zahlen mit Tausenderpunkten unterteilt werden. Und wie steht es mit Datumsangaben? Und wenn Sie einen String in eine Zahl parsen wollen? Oder die Zahl in einen String? Als Erstes sehen wir uns an, was es für eine Variable oder eine Methode bedeutet, statisch zu sein.

MATH-Methoden: Näher werden Sie einer globalen Methode nie wieder kommen

Der Unterschied zwischen regulären (nicht statischen) und statischen Methoden

Eine statische Variable initialisieren

Math-Methoden

Elementartypen verpacken

Autoboxing funktioniert fast überall

Und umgekehrt … eine elementare Zahl in einen String verwandeln

Zahlenformatierung

Der Format-Spezifizierer

Übungen

Statische Variablen werden geteilt.

Alle Instanzen derselben Klasse teilen sich eine einzelne Kopie der statischen Variablen.

11Datenstrukturen

Sortieren ist in Java ein Klacks. Ihnen stehen alle Werkzeuge für die Sammlung und Verarbeitung von Daten zur Verfügung, ohne dass Sie Ihren eigenen Sortieralgorithmus schreiben müssen. Im Java-Collections-Framework finden Sie Datenstrukturen für quasi jeden Zweck, den Sie sich nur vorstellen können. Brauchen Sie eine Liste, die einfach um neue Elemente erweitert werden kann? Wollen Sie etwas anhand seines Namens finden? Möchten Sie eine Liste erstellen, die automatisch Duplikate entfernt? Sie möchten Ihre Kollegen danach sortieren, wie oft sie Ihnen in den Rücken gefallen sind? Es ist alles da …

Die java.util-API, List und Collections entdecken

Generics sorgen für mehr Typsicherheit

Erneut ein Blick auf die sort()-Methode

Die neue, verbesserte Song-Klasse

Mit Comparators sortieren

Die Jukebox mit Lambdas aktualisieren

Ein HashSet anstelle einer ArrayList verwenden

Was Sie über TreeSet wissen MÜSSEN …

Nachdem wir Lists und Sets gesehen haben, verwenden wir jetzt eine Map

Endlich wieder zurück zu Generics

Lösung zur Übung

12Lambdas und Streams: Was – nicht wie!

Was wäre, wenn … Sie dem Computer nicht mitteilen müssten, WIE er etwas tun soll? In diesem Kapitel befassen wir uns mit der Streams-API, und Sie werden sehen, wie nützlich Lambda-Ausdrücke bei der Verwendung von Streams sein können. Außerdem werden Sie lernen, wie Sie mithilfe der Streams-API die Daten in einer Collection abfragen und umwandeln können.

Sagen Sie dem Computer, WAS Sie wollen

Wenn for-Schleifen schieflaufen

Einführung in die Streams-API

Ergebnisse von einem Stream erhalten

Richtlinien für die Arbeit mit Streams

Hallo Lambda, mein (nicht ganz so) alter Freund

Erkennen Sie funktionale Interfaces

Lous Herausforderung Nr. 1: Finde alle »Rock«-Songs

Lous Herausforderung Nr. 2: Alle Genres auflisten

Übungen

13Riskantes Verhalten

Dinge passieren. Die Datei fehlt. Der Server ist down. Auch wenn Sie ein noch so guter Programmierer sind – Sie können nicht alles unter Kontrolle haben. Wenn Sie eine riskante Methode schreiben, brauchen Sie Code, der mit den schlimmen Dingen umgeht, die passieren könnten. Aber woher wissen Sie, wann eine Methode riskant ist? Und wo platzieren Sie den Code, der die Ausnahmesituation behandelt? In diesem Kapitel programmieren wir einen MIDI-Musikplayer, der die riskante Java-Sound-API benutzt – daher sollten wir das besser alles schnell rausfinden!

Bauen wir eine Musikmaschine

Zuerst brauchen wir einen Sequencer

Eine Exception ist ein Objekt … des Typs Exception

Flusskontrolle in try/catch-Blöcken

Eine Methode kann mehr als eine Exception werfen

Mehrfache catch-Blöcke müssen von klein nach groß geordnet werden

Ausweichen (durch Deklaration) verzögert nur das Unausweichliche

Codeküche

Version 1: Ihre allererste Soundplayer-App

Version 2: Kommandozeilenargumente für das Experimentieren mit Sounds

Übungen

14Innen hui, außen GUI

Sehen Sie den Tatsachen ins Auge: Früher oder später werden Sie GUIs erstellen müssen. Selbst wenn Sie davon ausgehen, dass Sie den Rest Ihres Lebens serverseitigen Code schreiben, werden Sie irgendwann Werkzeuge schreiben müssen, die ein GUI benötigen. Wir werden zwei Kapitel mit der Programmierung von GUIs zubringen und dabei grundlegende Features der Sprache Java kennenlernen, z. B. Event-Handling und innere Klassen. Wir stellen einen Button auf dem Bildschirm dar, zeigen ein JPEG-Bild an und versuchen uns sogar an einer kleinen Animation.

Alles beginnt mit einem Fenster

Wie man an ein Benutzer-Event kommt

Listener, Quellen und Events

Machen Sie sich Ihr eigenes Grafik-Widget

Spaß mit paintComponent()

GUI-Layouts: mehrere Widgets in einen Frame packen

Die Rettung: Innere Klassen!

Rettung durch Lambdas!

Innere Klassen für Animationen einsetzen

Eine einfachere Möglichkeit, Messages und Events zu erstellen

Übungen

class MyOuter {

class MyInner {

void go() {

}

}

}

Das äußere und das innere Objekt gehen eine intime Bindung ein.

Diese beiden Objekte auf dem Heap haben eine besondere Bindung zueinander. Das innere Objekt kann die Variablen des äußeren Objekts benutzen (und umgekehrt).

15Mehr Schwung mit Swing

Swing ist einfach. Es sei denn, es ist Ihnen tatsächlich wichtig, wo die Dinge auf dem Bildschirm landen. Swing-Code sieht einfach aus, bis Sie ihn kompilieren und laufen lassen und denken: »Moment mal, das sollte aber woandershin!« Der Grund dafür, dass er einfach zu programmieren, aber schwer zu kontrollieren ist, ist der Layoutmanager. Mit ein bisschen Mühe bringen Sie Layoutmanager jedoch dazu, sich Ihrem Willen zu unterwerfen. In diesem Kapitel bringen wir unsere Swing-Künste in Schwung und lernen etwas über Widgets.

Swing-Komponenten

Layoutmanager

Die drei wichtigsten Layoutmanager: Border, Flow und Box

Es gibt keine Dummen Fragen

Spielen mit Swing-Komponenten

Codeküche

Die BeatBox

Übungen

16Objekte (und Text) speichern

Objekte lassen sich flach drücken und wieder aufblasen. Objekte haben einen Zustand und ein Verhalten. Das Verhalten steckt in der Klasse, aber der Zustand steckt in jedem einzelnen Objekt. Muss Ihr Programm Zustände speichern, können Sie das entweder auf die harte Tour machen, indem Sie jedes Objekt befragen und dann mühsam die Werte aller Instanzvariablen notieren. Oder Sie gehen einfach nach OO-Art vor – indem Sie lediglich das Objekt selbst gefriertrocknen (serialisieren) und deserialisieren, wenn Sie es zurückhaben wollen.

Ein serialisiertes Objekt in eine Datei schreiben

Soll eine Klasse serialisierbar sein, implementieren Sie Serializable

Deserialisierung: ein Objekt wiederherstellen

Version-ID: Ein großes Serialisierungsproblem

Einen String in ein Textdatei schreiben

Aus einer Textdatei lesen

Quiz Card Player (Code grob skizziert)

Path, Paths und Files (mit Verzeichnissen spielen)

Endlich, ein genauer Blick auf finally

Ein BeatBox-Pattern speichern

Übungen

17Eine Verbindung herstellen

Verbindung zur Außenwelt aufnehmen. Das ist nicht schwer. Um alle grundlegenden Netzwerkdetails kümmern sich Klassen in der java.net-Bibliothek. Einer der großen Vorteile von Java ist, dass das Senden und Empfangen über ein Netzwerk einfache Eingabe/Ausgabe ist, lediglich mit einem etwas anderen Anschluss-Stream am Ende der Kette. In diesem Kapitel erstellen wir Client-und Server-Sockets und Clients und Server. Bevor Sie mit dem Kapitel durch sind, haben Sie einen voll funktionsfähigen und Multithreadtauglichen Chatclient. Haben wir da gerade Multithreading erwähnt?

Verbinden, senden, empfangen

Der DailyAdviceClient (»Tipp des Tages«)

Ein einfaches Serverprogramm schreiben

Java hat mehrere Threads, aber nur eine Thread-Klasse

Die drei Zustände eines neuen Threads

Einen Thread schlafen schicken

Zwei (oder mehr!) Threads erzeugen und starten

Feierabend am Thread-Pool

Der neue und verbesserte SimpleChatClient

Übungen

18Nebenläufigkeitsprobleme behandeln

Es ist schwer, mehrere Dinge gleichzeitig zu tun. Multithreading-Code zu schreiben, ist einfach. Multithreading-Code zu schreiben, der wie erwartet funktioniert, kann viel schwieriger sein. In diesem letzten Kapitel zeigen wir Ihnen ein paar Dinge, die schiefgehen können, wenn mehrere Threads gleichzeitig arbeiten. Sie werden einige Werkzeuge in java.util.concurrent kennenlernen, die Ihnen helfen können, Multithreading-Code zu schreiben, der korrekt funktioniert. Sie werden lernen, immutable (unveränderliche) Objekte zu erstellen, die sicher über mehrere Threads hinweg verwendet werden können. Am Ende dieses Kapitels verfügen Sie über eine Reihe nützlicher Werkzeuge für die Arbeit mit Nebenläufigkeit.

Das Ryan-und-Monica-Problem, in Code ausgedrückt

Das Schloss eines Objekts verwenden

Das gefürchtete »Problem der verlorenen Aktualisierung«

Die increment()-Methode atomar machen. Synchronisieren Sie sie!

Blockade, eine tödliche Seite der Synchronisierung

»Vergleichen und tauschen« mit atomaren Variablen

Immutable Objekte verwenden

Mehr Probleme mit geteilten Daten

Verwenden Sie eine threadsichere Datenstruktur

Übungen

AAnhang A

Die finale Codeküche. Der vollständige Code für unser BeatBox-Clientprogramm – Ihre Chance, ein Rockstar zu werden!

Das endgültige BeatBox-Clientprogramm

Das endgültige BeatBox-Serverprogramm

BAnhang B

Die (mehr als) zehn wichtigsten Themen, die es nicht ins Buch geschafft haben … Noch können wir Sie nicht ganz gehen lassen. Ein paar Sachen haben wir noch, aber dann sind Sie fertig. Diesmal meinen wir es ernst.

#11JShell (Java REPL)

#10Packages

#9Immutabilität in Strings und Wrappern

#8Zugriffsebenen und Zugriffsmodifier (wer sieht was)

#7Varargs

#6Annotationen

#5Lambdas und Maps

#4Parallele Streams

#3Enumerations (enumerierte Typen/Enums)

#2Lokale Typinferenz für Variablen (var)

#1Records

iIndex

Wie man dieses Buch benutzt

Einführung

In diesem Abschnitt beantworten wir die brennende Frage: »Und? Warum steht SO ETWAS in einem Buch über die Programmiersprache Java?«

Für wen ist dieses Buch?

Wenn Sie alle folgenden Fragen mit »Ja« beantworten können:

Haben Sie schon Programmiererfahrung?

Wollen Sie Java lernen?

Ziehen Sie eine anregende Unterhaltung beim Abendessen einer langweiligen technischen Vorlesung vor?

dann ist dieses Buch etwas für Sie.

Dies ist KEIN Nachschlagewerk. Java von Kopf bis Fuß ist ein Buch zum Lernen, keine Enzyklopädie zu Java-Fakten.

Wer sollte eher die Finger von diesem Buch lassen?

Wenn Sie mindestens eine der folgenden Fragen mit »Ja« beantworten können:

Beschränken sich Ihre Programmierkenntnisse auf HTML? Haben Sie keine Erfahrung mit Skriptsprachen?

(Wenn Sie schon mal etwas mit Schleifen und mit if-then-Logik gemacht haben, werden Sie mit diesem Buch prima zurechtkommen, aber HTML-Tags allein reichen vermutlich nicht.)

Sind Sie ein Top-C++-Entwickler auf der Suche nach einem Nachschlagewerk?

Haben Sie Angst, etwas Neues auszuprobieren? Unterziehen Sie sich lieber einer Wurzelbehandlung, als Streifen mit Karos zu mischen? Glauben Sie, dass ein Technikbuch nicht ernst sein kann, wenn im Abschnitt zur Speicherverwaltung das Bild einer Ente auftaucht?

dann ist dieses Buch nicht das Richtige für Sie.

[Anmerkung aus der Marketingabteilung: Wer hat den Abschnitt gestrichen, der darauf hinweist, dass dieses Buch etwas für jeden Besitzer einer gültigen Kreditkarte ist? Und was ist mit dieser »Legen Sie Java auf den Gabentisch«-Werbung? … – Fred]

Wir wissen, was Sie denken.

»Kann das wirklich ein ernsthaftes Java-Programmierbuch sein?«

»Was sollen die ganzen Abbildungen?«

»Kann ich auf diese Weise wirklich etwas lernen?«

»Und warum riecht es hier nach Pizza?«

Und wir wissen, was Ihr Gehirn gerade denkt.

Ihr Gehirn lechzt nach Neuem. Es ist ständig dabei, Ihre Umgebung abzusuchen, und es wartet auf Ungewöhnliches. So ist es nun einmal gebaut, und es hilft Ihnen zu überleben.

Heutzutage ist es eher unwahrscheinlich, dass Sie als Tigerfutter enden. Aber man weiß ja nie.

Also, was macht Ihr Gehirn mit all den normalen, langweiligen Routinesachen, die Ihnen so begegnen? Es tut alles, damit es dadurch nicht bei seiner eigentlichen Arbeit gestört wird: die wirklich wichtigen Dinge zu erfassen. Es gibt sich nicht damit ab, die langweiligen Sachen zu speichern, der »Das hier ist offensichtlich nicht wichtig«-Filter lässt sie gar nicht erst durch.

Aber woher weiß Ihr Gehirn, was wichtig ist? Angenommen, Sie machen eine längere Wildniswanderung und ein Tiger springt aus dem Gebüsch. Was passiert in Ihrem Kopf?

Neuronen feuern. Gefühle kochen hoch. Chemische Substanzen durchfluten Sie.

Und so weiß Ihr Gehirn:

Das muss wichtig sein! Vergiss es nicht!

Und jetzt stellen Sie sich vor, Sie sind zu Hause oder in der Bibliothek. Sie befinden sich in einem sicheren, warmen, tigerfreien Bereich. Sie studieren, bereiten sich auf eine Prüfung vor. Oder Sie versuchen, irgendein schwieriges technisches Thema zu lernen, von dem Ihr Chef glaubt, Sie bräuchten dafür eine Woche oder höchstens zehn Tage.

Da ist nur ein Problem. Ihr Gehirn versucht, Ihnen einen großen Gefallen zu tun. Es will sicherstellen, dass diese offensichtlich unwichtigen Inhalte keine knappen Ressourcen blockieren. Ressourcen, die besser dafür verwendet würden, die wirklich wichtigen Dinge zu speichern. Wie Tiger. Wie die Gefahren des Feuers. Oder dass Sie nie wieder in Shorts snowboarden sollten.

Leider gibt es kein Patentrezept, um Ihrem Gehirn zu sagen: »Hey, Gehirn, vielen Dank, aber egal, wie langweilig dieses Buch auch ist und wie klein der Ausschlag auf meiner emotionalen Richterskala gerade ist, ich will wirklich, dass du diesen Kram behältst.«

Wir stellen uns die Leserinnen und Leser dieses Buchs als aktive Lernende vor.

Also, was ist nötig, damit Sie etwas lernen? Erst einmal müssen Sie es aufnehmen und dann dafür sorgen, dass Sie es nicht wieder vergessen. Es geht nicht darum, Fakten in Ihren Kopf zu schieben. Nach den neuesten Forschungsergebnissen der Kognitionswissenschaft, der Neurobiologie und der Lernpsychologie gehört zum Lernen viel mehr als nur Text auf einer Seite. Wir wissen, was Ihr Gehirn anmacht.

Einige der Lernprinzipien dieser Buchreihe:

Wir setzen Bilder ein. An Bilder kann man sich viel besser erinnern als an Worte allein und lernt so viel effektiver (bis zu 89 % Verbesserung bei Abrufbarkeits- und Lerntransferstudien). Außerdem werden die Dinge dadurch verständlicher. Wir setzen Text in oder neben die Grafiken, auf die sie sich beziehen, anstatt darunter oder auf eine andere Seite. Die Leser werden auf den Bildinhalt bezogene Probleme dann mit doppelt so hoher Wahrscheinlichkeit lösen können.

Wir verwenden einen gesprächsorientierten Stil mit persönlicher Ansprache. Nach neueren Untersuchungen haben Studentinnen und Studenten nach dem Lernen bei Tests bis zu 40 % besser abgeschnitten, wenn der Inhalt den Leser direkt in der ersten Person und im lockeren Stil angesprochen hat statt in einem formalen Ton. Wir halten keinen Vortrag, sondern erzählen Ihnen Geschichten. Wir benutzen eine zwanglose Sprache. Wir versuchen, uns selbst nicht zu ernst zu nehmen. Denn: Würden Sie einer anregenden Unterhaltung beim Abendessen mehr Aufmerksamkeit schenken oder einem Vortrag?

Wir wollen Sie dazu bringen, intensiver nachzudenken. Mit anderen Worten: Falls Sie nicht aktiv Ihre Neuronen strapazieren, passiert in Ihrem Gehirn nicht viel. Eine Leserin muss motiviert, begeistert und neugierig sein und angeregt werden, Probleme zu lösen, Schlüsse zu ziehen und sich neues Wissen anzueignen. Und dafür brauchen Sie Herausforderungen, Übungen, zum Nachdenken anregende Fragen und Tätigkeiten, die beide Seiten des Gehirns und mehrere Sinne einbeziehen.

Wir versuchen, Ihre Aufmerksamkeit zu erlangen – und sie zu behalten. Wir alle haben schon Erfahrungen dieser Art gemacht: »Ich will das wirklich lernen, aber ich kann einfach nicht über Seite 1 hinaus wach bleiben.« Ihr Gehirn passt auf, wenn Dinge ungewöhnlich, interessant, merkwürdig, auffällig, unerwartet sind. Ein neues, schwieriges, technisches Thema zu lernen, muss nicht langweilig sein. Wenn es das nicht ist, lernt Ihr Gehirn viel schneller.

Wir sprechen Gefühle an. Wir wissen, dass Ihre Fähigkeit, sich an etwas zu erinnern, wesentlich von dessen emotionalem Gehalt abhängt. Sie erinnern sich an das, was Sie bewegt. Sie erinnern sich, wenn Sie etwas fühlen. Nein, wir erzählen keine herzzerreißenden Geschichten über einen Jungen und seinen Hund. Was wir erzählen, ruft Überraschungs-, Neugier-, Spaß- und Was-soll-das?-Emotionen hervor und dieses Hochgefühl, das Sie beim Lösen eines Puzzles empfinden oder wenn Sie etwas lernen, das alle anderen schwierig finden. Oder wenn Sie merken, dass Sie etwas können, das dieser »Ich bin ein besserer Techniker als du«-Typ aus der Technikabteilung nicht kann.

Metakognition: Nachdenken übers Denken

Wenn Sie wirklich lernen möchten, und zwar schneller und nachhaltiger, dann schenken Sie Ihrer Aufmerksamkeit Aufmerksamkeit. Denken Sie darüber nach, wie Sie denken. Lernen Sie, wie Sie lernen.

Die meisten von uns haben in ihrer Jugend keine Kurse in Metakognition oder Lerntheorie gehabt. Es wurde von uns erwartet, dass wir lernen, aber nur selten wurde uns auch beigebracht, wie man lernt.

Wir nehmen aber an, dass Sie wirklich Java lernen möchten, wenn Sie dieses Buch in den Händen halten. Und wahrscheinlich möchten Sie nicht viel Zeit aufwenden.

Wenn Sie so viel wie möglich von diesem Buch profitieren wollen oder von irgendeinem anderen Buch oder einer anderen Lernerfahrung, übernehmen Sie Verantwortung für Ihr Gehirn. Ihr Gehirn im Zusammenhang mit diesem Lernstoff.

Der Trick besteht darin, Ihr Gehirn dazu zu bringen, neuen Lernstoff als etwas wirklich Wichtiges anzusehen. Als entscheidend für Ihr Wohlbefinden. So wichtig wie ein Tiger. Andernfalls stecken Sie in einem dauernden Kampf, in dem Ihr Gehirn sein Bestes gibt, um die neuen Inhalte davon abzuhalten, hängen zu bleiben.

Wie bringen Sie also Ihr Gehirn dazu, Java so zu behandeln, als wäre es ein hungriger Tiger?

Da gibt es den langsamen, ermüdenden Weg oder den schnelleren, effektiveren Weg. Der langsame Weg führt über bloße Wiederholung. Natürlich ist Ihnen klar, dass Sie lernen und sich sogar an die langweiligsten Themen erinnern können, wenn Sie sich die gleiche Sache immer wieder einhämmern. Wenn Sie dasselbe nur oft genug wiederholen, sagt Ihr Gehirn: »Er hat zwar nicht das Gefühl, dass das wichtig ist, aber er sieht sich dieselbe Sache immer und immer wieder an – dann muss sie wohl wichtig sein.«

Der schnellere Weg besteht darin, alles zu tun, was die Gehirnaktivität erhöht, vor allem verschiedene Arten von Gehirnaktivität. Eine wichtige Rolle dabei spielen die auf der vorhergehenden Seite erwähnten Dinge – alles Dinge, die nachweislich helfen, dass Ihr Gehirn für Sie arbeitet. So hat sich z. B. in Untersuchungen gezeigt: Wenn Wörter in den Abbildungen stehen, die sie beschreiben (und nicht irgendwo anders auf der Seite, z. B. in einer Bildunterschrift oder im Text), versucht Ihr Gehirn herauszufinden, wie die Wörter und das Bild zusammenhängen, und dadurch feuern mehr Neuronen. Und je mehr Neuronen feuern, umso größer ist die Chance, dass Ihr Gehirn mitbekommt: Bei dieser Sache lohnt es sich, aufzupassen, und vielleicht auch, sich daran zu erinnern.

Ein lockerer Sprachstil hilft, denn Menschen tendieren zu höherer Aufmerksamkeit, wenn ihnen bewusst ist, dass sie ein Gespräch führen – man erwartet dann ja von ihnen, dass sie dem Gespräch folgen und sich beteiligen. Das Erstaunliche daran ist: Es ist Ihrem Gehirn ziemlich egal, dass die »Unterhaltung« zwischen Ihnen und einem Buch stattfindet! Wenn der Schreibstil dagegen formal und trocken ist, hat Ihr Gehirn den gleichen Eindruck wie bei einem Vortrag, bei dem Sie in einem Raum voller passiver Zuhörer sitzen. Nicht nötig, wach zu bleiben.

Aber Abbildungen und ein lockerer Sprachstil sind erst der Anfang.

Das haben WIR getan:

Wir haben Bilder verwendet, weil Ihr Gehirn auf visuelle Eindrücke eingestellt ist, nicht auf Text. Soweit es Ihr Gehirn betrifft, sagt ein Bild wirklich mehr als 1.024 Worte. Und dort, wo Text und Abbildungen zusammenwirken, haben wir den Text in die Bilder eingebettet, denn Ihr Gehirn arbeitet besser, wenn der Text innerhalb der Sache steht, auf die er sich bezieht, und nicht in einer Bildunterschrift oder irgendwo vergraben im Text.

Wir haben Wiederholungen eingebaut, d. h. dasselbe auf unterschiedliche Art und mit verschiedenen Medientypen ausgedrückt, damit Sie es über mehrere Sinne aufnehmen. Das erhöht die Chance, dass die Inhalte an mehr als nur einer Stelle in Ihrem Gehirn verankert werden.

Wir haben Konzepte und Bilder in unerwarteter Weise eingesetzt, weil Ihr Gehirn auf Neuigkeiten programmiert ist. Und wir haben Bilder und Ideen mit zumindest etwasemotionalemCharakter verwendet, weil Ihr Gehirn darauf eingestellt ist, auf die Biochemie von Gefühlen zu achten. An alles, was ein Gefühl in Ihnen auslöst, können Sie sich mit höherer Wahrscheinlichkeit erinnern, selbst wenn dieses Gefühl nicht mehr ist als ein bisschen Belustigung, Überraschung oder Interesse.

Spielen Sie Compiler

Wir haben einen umgangssprachlichen Stil mit direkter Anrede benutzt, denn Ihr Gehirn ist von Natur aus aufmerksamer, wenn es Sie in einer Unterhaltung wähnt als wenn es davon ausgeht, dass Sie passiv einer Präsentation zuhören – sogar dann, wenn Sie lesen.

Wir haben mehr als 50 Übungen für Sie vorgesehen, denn Ihr Gehirn lernt und behält von Natur aus besser, wenn Sie Dinge tun, als wenn Sie nur darüber lesen. Und wir haben die Übungen zwar anspruchsvoll, aber doch lösbar gemacht, denn so ist es den meisten Lesern am liebsten.

Puzzles

Wir haben mehrere unterschiedliche Lernstile verwendet, denn vielleicht bevorzugen Sie ein Schritt-für-Schritt-Vorgehen, während ein anderer erst einmal den groben Zusammenhang verstehen und eine Dritte einfach nur ein Codebeispiel sehen möchte. Aber ganz abgesehen von den jeweiligen Lernvorlieben profitieren alle davon, wenn sie die gleichen Inhalte in unterschiedlicher Form präsentiert bekommen.

Punkt für Punkt

Wir liefern Inhalte für beide Seiten Ihres Gehirns, denn je mehr von Ihrem Gehirn Sie einsetzen, umso wahrscheinlicher werden Sie lernen und behalten und umso länger bleiben Sie konzentriert. Wenn Sie mit einer Seite des Gehirns arbeiten, bedeutet das häufig, dass sich die andere Seite des Gehirns ausruhen kann; so können Sie über einen längeren Zeitraum produktiver lernen.

Und wir haben Geschichten und Übungen aufgenommen, die mehr als einen Blickwinkel repräsentieren, denn Ihr Gehirn lernt von Natur aus intensiver, wenn es gezwungen ist, selbst zu analysieren und zu beurteilen.

Java im Gespräch

Wir haben Herausforderungen eingefügt: in Form von Übungen und indem wir Fragen stellen, auf die es nicht immer eine eindeutige Antwort gibt, denn Ihr Gehirn ist darauf eingestellt, zu lernen und sich zu erinnern, wenn es an etwas arbeiten muss (so wie Sie ja auch Ihren Körper nicht in Form bekommen können, indem Sie andere auf dem Sportplatz beobachten). Aber wir haben unser Bestes getan, um dafür zu sorgen, dass Sie – wenn Sie schon hart arbeiten – an den richtigen Dingen arbeiten. Dass Sie nicht einen einzigen Dendriten darauf verschwenden, ein schwer verständliches Beispiel zu verarbeiten oder einen schwierigen, mit Fachbegriffen gespickten oder extrem gedrängten Text zu analysieren.

Wir haben Menschen eingesetzt. In Geschichten, Beispielen, Bildern usw. – denn Sie sind ein Mensch. Und Ihr Gehirn schenkt Menschen mehr Aufmerksamkeit als Dingen.

Und wir haben einen 80/20-Ansatz genutzt. Wir gehen davon aus, dass dies nicht Ihr einziges Buch sein wird, wenn Sie einen Doktor in Java machen wollen. Deshalb besprechen wir nicht alles. Nur das, was Sie wirklich verwenden werden.

Gewichtheben fürs Gehirn

Und das können SIE tun, um sich Ihr Gehirn untertan zu machen

So, wir haben unseren Teil der Arbeit geleistet. Der Rest liegt bei Ihnen. Diese Tipps sind ein Anfang; hören Sie auf Ihr Gehirn und finden Sie heraus, was bei Ihnen funktioniert und was nicht. Probieren Sie neue Wege aus.

Schneiden Sie dies aus und heften Sie es an Ihren Kühlschrank.

Immer langsam. Je mehr Sie verstehen, umso weniger müssen Sie auswendig lernen.

Lesen Sie nicht nur. Halten Sie inne und denken Sie nach. Wenn das Buch Sie etwas fragt, springen Sie nicht einfach zur Antwort. Stellen Sie sich vor, dass Sie das wirklich jemand fragt. Je gründlicher Sie Ihr Gehirn zum Nachdenken zwingen, umso größer ist die Chance, dass Sie lernen und behalten.

Bearbeiten Sie die Übungen. Machen Sie selbst Notizen.

Wir haben sie entworfen, aber wenn wir sie auch für Sie lösen, wäre das so, als würde jemand anderes Ihr Training für Sie absolvieren. Und sehen Sie sich die Übungen nicht einfach nur an. Benutzen Sie einen Bleistift. Es deutet vieles darauf hin, dass körperliche Aktivität beim Lernen den Lernerfolg erhöhen kann.

Lesen Sie die Abschnitte »Es gibt keine Dummen Fragen«.

Und zwar alle. Das sind keine Zusatzanmerkungen – sie gehören zum Kerninhalt! Aus den Fragen lernen Sie manchmal noch mehr als aus den Antworten.

Lesen Sie nicht alles am selben Ort.

Stehen Sie auf, recken Sie sich, gehen Sie herum, wechseln Sie den Stuhl, gehen Sie in einen anderen Raum. Das trägt dazu bei, dass Ihr Gehirn etwas fühlt, und verhindert, dass Ihr Lernerfolg an einen bestimmten Ort gebunden ist.

Lesen Sie dies als Letztes vor dem Schlafengehen. Oder lesen Sie danach zumindest nichts

Anspruchsvolles

mehr.

Ein Teil des Lernprozesses (vor allem die Übertragung in das Langzeitgedächtnis) findet erst statt, nachdem Sie das Buch zur Seite gelegt haben. Ihr Gehirn braucht Zeit für sich, um weitere Verarbeitung zu leisten. Wenn Sie in dieser Zeit etwas Neues aufnehmen, geht ein Teil dessen, was Sie gerade gelernt haben, verloren.

Trinken Sie Wasser. Viel.

Ihr Gehirn arbeitet am besten in einem schönen Flüssigkeitsbad. Austrocknung (zu der es schon kommen kann, bevor Sie überhaupt Durst verspüren) beeinträchtigt die kognitive Funktion.

Reden Sie drüber. Laut.

Sprechen aktiviert einen anderen Teil des Gehirns. Wenn Sie etwas verstehen möchten oder Ihre Chancen verbessern wollen, sich später daran zu erinnern, sagen Sie es laut. Noch besser: Versuchen Sie, es jemand anderem laut zu erklären. Sie lernen dann schneller und haben vielleicht Ideen, auf die Sie beim bloßen Lesen nie gekommen wären.

Hören Sie auf Ihr Gehirn.

Achten Sie darauf, Ihr Gehirn nicht zu überladen. Wenn Sie merken, dass Sie etwas nur noch überfliegen oder dass Sie das gerade erst Gelesene vergessen haben, ist es Zeit für eine Pause. Ab einem bestimmten Punkt lernen Sie nicht mehr schneller, indem Sie mehr hineinzustopfen versuchen; das kann sogar den Lernprozess stören.

Aber bitte mit

Gefühl

!

Ihr Gehirn muss wissen, dass es um etwas Wichtiges geht. Lassen Sie sich in die Geschichten hineinziehen. Erfinden Sie eigene Bildunterschriften für die Fotos. Über einen schlechten Scherz zu stöhnen, ist immer noch besser, als gar nichts zu fühlen.

Tippen Sie den Code ab und führen Sie ihn aus.

Tippen Sie die Codebeispiele ab und führen Sie sie aus. Dann können Sie herumexperimentieren und den Code verändern und verbessern (oder ihn kaputtmachen – das ist manchmal der beste Weg, um herauszufinden, was wirklich passiert). Bei langen Beispielen oder dem »Fertiggericht«-Code können Sie die Quellcodedateien von der Webseite zum Buch aus dem Onlinekatalog von O’Reilly herunterladen.

Was Sie für dieses Buch brauchen:

Was Sie nicht brauchen, ist ein zusätzliches Entwicklungswerkzeug wie z. B. eine integrierte Entwicklungsumgebung (Integrated Development Environment, kurz: IDE). Wir empfehlen Ihnen nachdrücklich, ausschließlich einen einfachen Texteditor zu verwenden, solange Sie dieses Buch noch nicht durchhaben. Eine IDE kann Ihnen einige der Details vorenthalten, die aber wirklich wichtig sind. Daher ist es viel besser, wenn Sie das Ganze zunächst auf der Kommandozeile lernen. Erst wenn Sie die Vorgänge wirklich verstanden haben, sollten Sie auf ein Tool umsteigen, das einen Teil des Prozesses automatisiert.

In diesem Buch gehen wir davon aus, dass Sie mindestens Java 11 einsetzen (mit Ausnahme von Anhang B). Sollten Sie mit Java 8 arbeiten, wird der größte Teil Ihres Codes aber trotzdem funktionieren.

Wenn wir ein Merkmal einer höheren Version als Java 8 besprechen, weisen wir auf die benötigte Version hin.

JAVA INSTALLIEREN

Da sich die Versionen und damit auch die Empfehlung für das richtige JDK schnell ändern, haben wir die detaillierten Anweisungen zur Installation von Java als Teil der Codebeispiele online zur Verfügung gestellt:

https://oreil.ly/hfJava_install

Dies ist eine vereinfachte Version davon.

Wenn Sie nicht wissen, welche Java-Version Sie verwenden sollen, empfehlen wir Java 17.Es gibt viele kostenlose Builds des OpenJDK (der Open-Source-Version von Java). Wir empfehlen das von der Gemeinschaft getragene Eclipse Adoptium JDK, zu finden unter https://adoptium.net.Das JDK enthält alles, was Sie zum Kompilieren und Ausführen von Java brauchen. Es enthält allerdings keine API-Dokumentation. Die brauchen Sie aber! Laden Sie die Java-SE-API-Dokumentation herunter. Alternativ können Sie auch online auf die Dokumentation zugreifen, aber glauben Sie uns – der Download lohnt sich!Sie benötigen einen Texteditor. So gut wie jeder Editor ist geeignet (vi, emacs), auch die GUI-basierten Programme, die den meisten Betriebssystemen beiliegen. Notepad, Wordpad, TextEdit etc. funktionieren alle, solange Sie im Nur-Text-Modus (nicht Rich Text) arbeiten und sicherstellen, dass nicht ».txt« am Ende Ihres Quellcodedateinamens (».java«) angehängt wird.Nach dem Herunterladen/Entpacken/wasauchimmer (das hängt von der Version und Ihrem Betriebssystem ab) müssen Sie einen Eintrag für Ihre PATH-Umgebungsvariable vornehmen, die auf das bin-Verzeichnis innerhalb des Java-Hauptverzeichnisses verweist. Das bin-Verzeichnis ist das Verzeichnis, zu dem Sie einen PFAD (engl. Path) brauchen. Wenn Sie auf der Kommandozeile

% javac

eingeben, weiß Ihr Terminal auf diese Weise, wo es den javac-Compiler findet.

Hinweis: Sofern Sie Schwierigkeiten bei der Installation haben, empfehlen wir Ihnen, das Forum für Java-Anfänger auf javaranch.com aufzusuchen! Aber eigentlich sollten Sie das auf jeden Fall tun – egal ob Sie Probleme haben oder nicht.

Den Original-Beispielcode für dieses Buch finden Sie unter: https://oreil.ly/hfJava_3e_examples.

Was Sie sonst noch wissen sollten:

Dies ist ein Lernerlebnis, kein Nachschlagewerk. Wir haben bewusst alles herausgestrichen, was an irgendeiner Stelle des Buchs hinderlich für den Lernprozess sein könnte. Und wenn Sie das Buch das erste Mal durcharbeiten, müssen Sie am Anfang beginnen, denn das Buch geht stets davon aus, dass Sie bestimmte Dinge bereits gesehen und gelernt haben.

Wir verwenden einfache, UML-ähnliche Diagramme.

Wenn wir reines UML verwendet hätten, würden Sie zwar etwas sehen, das wie Java aussieht, aber mit einer Syntax, die schlicht und einfach falsch ist. Deshalb haben wir eine vereinfachte UML-Version genutzt, die nicht im Widerspruch zur Java-Syntax steht. Falls Sie UML noch nicht kennen, müssen Sie sich hier nicht damit abplagen, Java und UML gleichzeitig zu lernen.

Wir kümmern uns nicht um das Organisieren und Verpacken Ihres Codes.

In diesem Buch können Sie sich in aller Ruhe dem Lernen von Java widmen, ohne mit bestimmten Organisations- oder Verwaltungsdetails der Entwicklung von Java-Programmen belastet zu werden. Später, in der »echten« Welt, müssen Sie diese Details kennen und damit arbeiten, aber da das Bereitstellen von Java-Anwendungen im Allgemeinen auf Build-Tools von Drittanbietern wie Maven und Gradle angewiesen ist, sind wir davon ausgegangen, dass Sie diese Tools separat erlernen werden.

Die Spitzen-Sie-Ihren-Bleistift-Aufgaben sollten Sie ALLE zu lösen versuchen.

Spitzen Sie Ihren Bleistift

Die Übungen am Kapitelende sind notwendig; die Rätsel sind optional. Die jeweiligen Antworten finden Sie ganz zum Schluss des Kapitels.

Eins müssen Sie über die »Puzzles« und »Rätsel« wissen – es sind wirklich Rätsel. So wie Knobeleien, Denksportaufgaben, Kreuzworträtsel usw. Die Übungen sind dazu gedacht, das Gelernte einzuüben, und sollten daher auf keinen Fall ausgelassen werden. Das gilt nicht für die Rätsel; manche davon stellen sogar eine ziemliche Herausforderung dar. Sie sind etwas für Rätselfreunde – und ob Sie ein Rätselfreund sind oder nicht, wissen Sie sicher selbst. Wenn Sie es nicht genau wissen, schlagen wir Ihnen vor, ein paar davon auszuprobieren, aber lassen Sie sich auf keinen Fall entmutigen, wenn Sie ein Rätsel oder Puzzle nicht lösen können oder einfach nicht genug Zeit dafür aufwenden wollen.

Zu den »Spitzen Sie Ihren Bleistift«-Übungen gibt es keine Lösungen.

Zumindest sind diese nicht im Buch abgedruckt. Für manche gibt es keine eindeutige Antwort, und bei anderen sollten Sie im weiteren Verlauf Ihrer Lernerfahrung selbst entscheiden, ob Ihre Antworten richtig waren.

Aufgaben, die mit dem Trainingslogo (den Laufschuhen) gekennzeichnet sind, sind Pflicht! Überspringen Sie sie nicht, wenn Sie es ernst meinen mit dem Erlernen von Java.

Die Codebeispiele sind so kurz wie möglich.

Es ist frustrierend, sich durch 200 Zeilen Code zu wühlen, um die beiden Zeilen zu finden, die man zum Verständnis benötigt. Bei den meisten Beispielen in diesem Buch wird vom Kontext so wenig abgedruckt wie möglich – so wird der Teil, den Sie gerade lernen wollen, klar und einfach. Erwarten Sie vom Code nicht unbedingt, dass er stabil läuft oder vollständig ist. Das bleibt als Aufgabe für Sie, sobald Sie mit dem Buch durch sind. Die Beispiele im Buch wurden speziell zum Zweck des Lernens geschrieben und sind nicht immer voll funktionsfähig.

Wenn Sie das Puzzle-Logo sehen, geht es um etwas Freiwilliges, und wenn Sie keinen Spaß an Knobeleien oder Kreuzworträtseln haben, werden Ihnen auch diese nicht gefallen.

Die Fachgutachter der dritten englischen Auflage

Marc Loy

Marc begann seine Java-Ausbildung in der Frühzeit bei Sun Microsystems (ein Lob an HotJava!) und ist seitdem erfolgreich dabei. Er ist Autor einer Reihe früher Java-Bücher und Trainingskurse und arbeitete dabei mit einer Vielzahl unterschiedlicher Unternehmen aus den USA, Europa und Asien zusammen. Zuletzt schrieb Marc für O’Reilly das Buch Smaller C und war Co-Autor der fünften englischen Auflage von Learning Java. Aktuell arbeitet Marc in Ohio als Entwickler und Maker, der sich auf Mikrocontroller spezialisiert hat.

Abraham Marin-Perez

Abraham ist Java-Programmierer, Berater, Autor und Vortragsredner mit über zehn Jahren Erfahrung in einer Vielzahl von Branchen. Ursprünglich aus Valencia in Spanien stammend, hat Abraham den Großteil seiner Karriere in London verbracht, wo er für Kunden wie JP Morgan oder das britische Innenministerium arbeitet, häufig in Zusammenarbeit mit Equal Experts. Aus der Überzeugung, dass seine Erfahrungen für andere nützlich sein könnten, engagierte sich Abraham als Java-Nachrichtenredakteur bei InfoQ. Er ist außerdem Autor von Real-World Maintainable Software und Co-Autor von Continuous Delivery in Java. Daneben hilft er bei der Leitung der Londoner Java-Community. Als ewig Lernender strebt Abraham außerdem einen Abschluss in Physik an.

Weitere Menschen, denen wir für die dritte englische Auflage Dank schulden

Bei O’Reilly:

Ein riesiges Dankeschön an Zan McQuade und Nicole Taché dafür, dass sie uns die Möglichkeit gaben, diese Auflage endlich herauszubringen! Zan, danke, dass du Trisha wieder mit der Head-First-Welt zusammengebracht hast, und Nicole: fantastische Arbeit, uns dazu zu bringen, dieses Buch zu Ende zu bringen. Danke auch an Meghan Blanchette, die O’Reilly schon vor 100 Jahren verlassen hat, aber die Bert und Trisha anno 2014 miteinander bekannt gemacht hat.

Trisha möchte sich gerne bedanken bei:

Helen Scott für ihre häufigen Rückmeldungen zu den neuen Themen im Buch. Sie hat mich immer wieder davon abgehalten, zu tief in die Materie einzutauchen oder zu viel Wissen vorauszusetzen. Sie ist eine echte Fürsprecherin der Lernenden. Ich kann es kaum erwarten, bei unserem nächsten Projekt noch enger mit ihr zusammenzuarbeiten.

Helen Scott

Meinem Team bei JetBrains für ihre Geduld und ihre Ermutigungen: Dalia Abo Sheasha für das Testen des Kapitels über Lambdas und Streams und Mala Gupta dafür, dass sie mir genau die Informationen gab, die ich über moderne Java-Zertifizierungen brauchte. Ein besonders großes Dankeschön an Hadi Hariri für seine ununterbrochene Unterstützung.

Den Friday Pub Lunch informaticos dafür, dass sie alle mittäglichen Gespräche zu jedem Java-Thema toleriert haben, das ich an dem Wochentag gerade zu erklären versuchte. Danke auch an Alys, Jen und Clare für ihre Hilfe, als es darum ging, herauszufinden, wann dieses Buch Vorrang vor der Familie hat. Danke an Holly Cummins, die buchstäblich im letzten Moment noch einen Bug fand.

Evie und Amy für ihre Verbesserungsvorschläge für die Eiscreme-Beispiele zu Javas Optional-Typen. Danke euch beiden für euer ehrliches Interesse an meinen Fortschritten und die spontanen High-fives, als ihr mitbekommen habt, dass ich endlich fertig war.

Nichts hiervon wäre ohne Israel Boza Rodriguez möglich gewesen. Du hast es ausgehalten, dass ich von wichtigen Gesprächen wie: »Was sollen wir zu Abend essen?« mit Fragen wie: »Meinst du, CountDownLatch ist zu nischenhaft, um es beginnenden Entwicklern beizubringen?« ablenkte. Vor allem hast du mir geholfen, Platz und Zeit für die Arbeit an diesem Buch zu schaffen, und mich regelmäßig daran erinnert, warum ich dieses Projekt überhaupt angenommen habe.

Herzlichen Dank an Bert und Kathy dafür, dass sie mich auf diese Reise mitnahmen. Es war mir eine Ehre, zu erfahren, wie man sozusagen aus erster Hand lernt, eine Head-First-Autorin zu sein.

Bert und Kathy möchten sich bedanken bei:

Beth Robson und Eric Freeman für ihre umfassende und andauernde großartige Unterstützung der Head-First-Buchreihe. Ein besonderes Dankeschön an Beth für die vielen Gespräche, in denen wir diskutierten, welche neuen Java-Themen wir auf welche Weise vermitteln sollten.

Paul Wheaton und den erstaunlichen Moderatoren von CodeRanch.com (alias JavaRanch), die dafür sorgen, dass CodeRanch ein freundlicher Ort für Java-Anfänger bleibt. Besonderer Dank gilt Campbell Ritchie, Jeanne Boyarsky, Stephan van Hulst, Rob Spoor, Tim Cooke, Fred Rosenberger und Frits Walraven für ihren unschätzbaren Rat dazu, was seit der zweiten englischen Auflage die wirklich wichtigen Erweiterungen von Java waren.

Dave Gustafson dafür, dass er mir so viel über Softwareentwicklung und Rock Climbing beigebracht hat, UND für großartige Diskussionen über den aktuellen Stand der Programmierung. Eric Normand dafür, dass er uns allen ein bisschen funktionale Programmierung beigebracht und so geholfen hat, einige der besten Ideen der FP in einem OO-Buch unterzubringen. Simon Roberts dafür, dass er Studierenden auf der ganzen Welt mit Ausdauer und Leidenschaft Java beibringt. Danke an Heinz Kabutz und Venkat Subramaniam für ihre Hilfe bei der Erforschung der Haken und Ösen von Java Streams.

Laura Baldwin und Mike Loukides für ihre unermüdliche Unterstützung von Head First während all der Jahre. Ron Bilodeau und Kristen Brown für ihre hervorragende, immer geduldige und freundliche Unterstützung.

Die Fachgutachter der zweiten englischen Auflage

Unendlichen Dank an Jessica und Val für ihre harte Arbeit an der zweiten englischen Auflage.

Jess arbeitet bei Hewlett-Packard im Self Healing Services Team. Sie machte ihren Bachelor-Abschluss in Technischer Informatik an der Villanova University, hat SCJP-1.4- und SCWCD-Zertifizierungen und steht kurz vor ihrem Master in Technischer Informatik an der Drexel University (puh!).

Wenn Jess nicht arbeitet, studiert oder in ihrem MINI Cooper S unterwegs ist, kämpft sie vielleicht gerade mit ihrer Katze um das Garn, mit dem sie ihr neuestes Strick- oder Häkelprojekt fertigstellen möchte (will jemand einen Hut?). Ursprünglich stammt sie aus Salt Lake City, Utah (nein, sie ist keine Mormonin … ja, auch Sie wollten das fragen …) und lebt zurzeit mit ihrem Mann Mendra und zwei Katzen, Chai und Sake, in der Nähe von Philadelphia.

Begegnen können Sie ihr beim Moderieren der technischen Foren auf javaranch.com.

Valentin machte seinen Master-Abschluss in Informatik an der Schweizer École Polytechnique Fédérale de Lausanne (EPFL). Er hat als Entwickler bei SRI International (Menlo Park, Kalifornien) und als leitender Entwickler im Software Engineering Laboratory der EPFL gearbeitet.

Valentin ist Mitbegründer und technischer Direktor von Condris Technologies, einer Firma, die sich auf die Entwicklung von Softwarearchitekturlösungen spezialisiert hat.

Zu seinen Forschungs- und Entwicklungsinteressen gehören aspektorientierte Programmierung, Ent- wurfs- und Architekturmuster, Webdienste und Softwarearchitektur. Valentin kümmert sich um seine Frau, um die Gartenarbeit, liest, treibt Sport – und neben all dem moderiert er auch noch die SCBCD- und SCDJWS-Foren auf javaranch.com. Er hat SCJP-, SCJD-, SCBCD-, SCWCD- und SCDJWS- Zertifizierungen. Zudem hatte er auch die Gelegenheit, als Co-Autor für den Whizlabs SCBCD Exam Simulator zu fungieren.

(Wir stehen immer noch unter Schock, dass wir ihn mit einer Krawatte sehen mussten.)

Dank für die zweite englische Auflage schulden wir

außerdem:

Bei O’Reilly:

Unser besonderer Dank geht an Mike Loukides bei O’Reilly, der das Risiko dieses Buchs eingegangen ist und uns geholfen hat, aus dem »Head First«-Konzept ein Buch (beziehungsweise eine Buchreihe) zu entwickeln. Wenn diese zweite Auflage in den Druck geht, gibt es bereits fünf Bücher aus der Reihe »Head First«, und Mike hat uns auf dem ganzen Weg begleitet. Wir danken auch Tim O’Reilly für seine Bereitschaft, sich auf etwas völlig Neues und Andersartiges einzulassen. Und der klugen Kyle Hart dafür, dass sie herausgefunden hat, wie »Head First« in diese Welt passt, und für die Markteinführung der Reihe. Und schließlich Edie Friedman für das »Kopfbetonende« Cover der Reihe.

Unseren tapferen Betatestern und Review-Team-Mitgliedern:

Ganz besonders danken wir dem Leiter unseres JavaRanch-Review-Teams, Johannes de Jong. Du bist jetzt zum fünften Mal bei einem unserer »Head First«-Bücher dabei, und wir freuen uns mächtig, dass du trotzdem noch mit uns sprichst. Jeff Cumps ist zum dritten Mal dabei und findet unerbittlich die Stellen, an denen wir deutlicher oder exakter sein müssen.

Corey McGlone, du bist spitze. Und wir finden, du gibst auf javaranch.com die besten Erklärungen. Wahrscheinlich hast du gemerkt, dass wir eine oder zwei davon geklaut haben. Jason Menard hat uns mehr als einmal – und nicht nur bei Kleinigkeiten – in fachlicher Hinsicht gerettet, und Thomas Paul hat uns wie immer fachliches Feedback geliefert und verzwickte Java-Probleme gefunden, die wir anderen übersehen hatten. Jane Griscti, Java-Programmiererin mit Brief und Siegel (die zudem das eine oder andere übers Schreiben weiß), war uns – gemeinsam mit dem altgedienten JavaRancher Barry Gaunt – eine große Hilfe bei der Neuauflage.

Marilyn de Queiroz hat uns bei beiden Auflagen des Buchs großartig unterstützt. Bei der ersten Auflage waren uns außerdem Chris Jones, John Nyquist, James Cubeta, Terri Cubeta und Ira Becker eine riesige Hilfe.

Besonderer Dank geht an einige der Head-First-Leute, die uns von Anfang an hilfreich zur Seite gestanden haben: Angelo Celeste, Mikalai Zaikin und Thomas Duff (twduff.com). Und danke an unseren wunderbaren Agenten, David Rogelberg von StudioB (aber mal ernsthaft, was ist mit den Filmrechten?).

Ein paar der Java-Expertinnen und -Experten aus unserem Review-Team …

Corey McGlone

Jef Cumps

Johannes de Jong

Jason Menard

Thomas Paul

Marilym de Queiroz

Rodney J. Woodruff

James CubetaTerri Cubeta

Ira Becker

John Nyquist

Chris Jones

Gerade als Sie dachten, es kämen keine weiteren Danksagungen* …

Noch mehr Java-Expertinnen und -Experten, die bei der ersten Auflage geholfen haben (in pseudozufälliger Reihenfolge):

Emiko Hori, Michael Taupitz, Mike Gallihugh, Manish Hatwalne, James Chegwidden, Shweta Mathur, Mohamed Mazahim, John Paverd, Joseph Bih, Skulrat Patanavanich, Sunil Palicha, Suddhasatwa Ghosh, Ramki Srinivasan, Alfred Raouf, Angelo Celeste, Mikalai Zaikin, John Zoetebier, Jim Pleger, Barry Gaunt und Mark Dielen.

Das Puzzle-Team der ersten Auflage:

Dirk Schreckmann, Mary »Java-Kreuzworträtsel-Champion« Leners, Rodney J. Woodruff, Gavin Bong und Jason Menard. JavaRanch hat wirklich Glück, dass ihr alle dort mithelft.

Weitere Mitverschwörer, denen wir danken möchten, sind:

Paul Wheaton, der Ober-Cowboy von javaranch.com, der Tausende von Java-Anfängern unterstützt hat.

Solveig Haugland, J2EE-Meisterin und Autorin von »Dating Design Patterns«.

Die Autoren Dori Smith und Tom Negrino (backupbrain.com), die uns durch die Welt der technischen Fachbücher gelotst haben.

Unsere Head-First-Komplizen, Eric Freeman und Beth Freeman (die Autoren von »Head First Design Patterns« – in deutscher Übersetzung: »Entwurfsmuster von Kopf bis Fuß«), die uns Bawls™ zu trinken gaben und uns dadurch den nötigen Koffeinschub verpassten, um das hier pünktlich fertigzustellen.

Sherry Dorris für die Dinge, auf die es wirklich ankommt.

Die mutigen »Early Adopters« dieser Reihe:

Joe Litton, Ross P. Goldberg, Dominic Da Silva, honestpuck, Danny Bromberg, Stephen Lepp, Elton Hughes, Eric Christensen, Vulinh Nguyen, Mark Rau, Abdulhaf, Nathan Oliphant, Michael Bradly, Alex Darrow, Michael Fischer, Sarah Nottingham, Tim Allen, Bob Thomas und Mike Bibby (der Erste).

1 Tauchen Sie ein: eine Kostprobe

Die Oberfläche durchbrechen

Java bringt Sie an neue Orte. Seit seiner bescheidenen Veröffentlichung in der (schwächlichen) Version 1.02 hat Java Programmierer mit seiner freundlichen Syntax, seinen objektorientierten Features, der Speicherverwaltung und vor allem mit dem Versprechen auf Portabilität verführt. Die Verlockung des Write-once, Run-anywhere ist einfach zu groß. Es entstand eine treue Anhängerschaft, die explosionsartig wuchs, während Programmierer gegen Bugs, Einschränkungen und vor allem dagegen kämpften, dass es schneckenlangsam war. Aber das ist schon lange her. Wenn Sie gerade erst mit Java beginnen, haben Sie Glück. Einige von uns mussten sich zehn Kilometer durch den Schnee kämpfen (barfuß), in jede Richtung bergauf, um selbst die trivialste Applikation ans Laufen zu bringen. Sie dagegen können sich von dem geschmeidigeren, schnelleren, viel, viel mächtigeren Java von heute tragen lassen.

Wie Java funktioniert

Unser Ziel ist es, eine Applikation zu schreiben (in unserem Fall eine interaktive Partyeinladung), die auf jedem beliebigen von Ihren Freunden verwendeten Gerät funktionieren soll.

Was Sie in Java tun werden

Sie schreiben eine Quellcode-Datei, kompilieren sie mit dem javac-Compiler und führen dann den kompilierten Bytecode in einer virtuellen Java-Maschine aus.

(Hinweis: Dies soll KEINE