2 Alles eine Typfrage – Variablen und grundlegende Datentypen
61
Variablen und Datentypen
62
Können wir Zahlen, bitte?
64
Lesbarkeit von langen Zahlen
67
Binär, oktal, dezimal und hexadezimal
69
Gute Namenswahl – Java Code Conventions
73
Dividieren und komplizieren
76
Genau rechnen mit BigDecimal
77
Ein bisschen mehr, nein, eher ein bisschen weniger
78
Konvertierung von Zahlen
80
Ein Charakter namens Cäsar
84
Nichts als die Wahrheit
86
Es kommt auf den Charakter an
95
4 Von Dinkelpfannekuchen und Buchstabensalat – Arbeiten mit Strings
135
Auf einzelne Zeichen zugreifen
138
Vergleichen von Strings
145
Gleich oder nicht gleich, oder doch teilweise gleich
147
Suchen und ersetzen in Strings
149
Noch was für Profis: Strings in den Pool werfen
157
Strings sind unveränderlich
161
Veränderbare Zeichenketten
162
Zeichen löschen, ersetzen und spiegeln
164
StringBuilder in Schleifen
166
Was du aus diesem Kapitel mitnehmen solltest
167
5 Objektiv betrachtet, eine ganz andere Klasse – Klassen, Objekte, Methoden
169
Der nächste Level der Wiederverwendung – Methoden
170
Kann ich das zurückgeben?
180
Zurück zu den Nachrichten
181
Auf dem Weg zum Java-Ninja – Klassen und Objekte
182
Der Fotoapparat unter der Lupe
191
Setter mit mehreren Parametern
192
Sichtbarkeit von Variablen und Methoden
196
Objekte in Strings umwandeln
202
Textuelle Beschreibung von Objekten
204
Nur für Profis – Zerlegen des Fotoapparats
207
Referenzdatentypen, Heap, Garbage-Collection
211
Wenn der Heap zu voll wird
213
VisualVM Eclipse installieren
215
Wie alles zusammenhängt
226
6 Woher hat er das bloß? – Vererbung
233
Noch weniger doppelter Code dank Vererbung
236
Der Apfel fällt nicht weit vom Stamm
238
Verhalten anpassen durch Überschreiben von Methoden
239
Überschreiben verboten
241
Ich will aber zu Opa und Oma! Was ist mit der Großelternklasse?
244
Vererbung und Konstruktoren
246
Die Konstruktorkette wieder reparieren
247
Wie war das nochmal mit den Konstruktoren?
250
Erbt der Sohn vom Vater oder der Vater vom Sohn?
251
Welche Methode hätten’s denn gerne? Methoden überladen
257
Serviceorientiert vs. objektorientiert
260
Zurück zu den Objekten
261
Deutschland sucht den Knetsuperstar
263
7 Schnittstellen und andere leichte Verletzungen – Abstrakte Klassen und Interfaces
267
Digital oder analog? Hauptsache abstrakt!
272
Alles abstrakt, oder was?
280
Übungen zu Interfaces
286
Für die einen sind es Interfaces, …
288
Interfaces und Vererbung
289
Weniger ist manchmal mehr
291
Konstanten in Interfaces
292
Konstanten in Konstantenklassen
292
Konstanten über Enums
295
Interfaces – Wiederholung
296
Statische Memberklassen
297
Nichtstatische Memberklassen
299
Abstrakt und polymorph – alles klar, Schrödinger?
303
8 Hast du eigentlich einen Überblick über deine ganzen Schuhe? – Arrays, Collections & Maps
305
Ich will mehr davon – Beziehungen zu Katzen und andere Freundinnen
306
Ab in die nächste Dimension
309
Solche Schuhe hast du schon!
311
Alles muss man selber machen
312
Auf den Spuren der Objektgleichheit
314
Gleich ist gleich – oder doch nicht?
315
Arrays wachsen nicht mit
315
Solche Schuhe hast du immer noch!
319
Soll ich dir mal meine Schuhsammlung zeigen?
321
Der Iterator (hört sich krass an, oder?)
322
Einmal heißt einmal und dann keinmal mehr
324
Hash mich, ich bin der Frühling
325
Sets für den Schuhtester
329
Der richtige Hashcode
330
So viele Schuhe hast du schon
342
Lala-lalalala-lala-la, bald ist Java 8 mit Lambda da
347
filter(), map() und reduce()
349
Nochmal alles ganz lambsam
355
9 Ausnahmsweise und um ganz sicher zu gehen – Exceptions
357
Aus Fehlern werden Ausnahmen
358
Deine erste Exception
359
Das Werfen vorbereiten
360
Fangen will gelernt sein
362
Ganz zum Schluss – der finally-Block
364
Hier werden Sie individuell behandelt
365
Vererbung von Exceptions
367
Die Ausnahme als Auskunftsobjekt – was ist eigentlich passiert?
368
Information erwünscht, Abhängigkeit unerwünscht
370
Exceptions weiterwerfen
371
Wann und wie behandeln
372
Exceptions immer weiterleiten? Nicht immer der richtige Weg
373
Muss man nicht fangen – Unchecked Exceptions
375
Defensiv programmieren gegen Runtime-Exceptions
378
Lass den Türsteher mitloggen
380
Automatisches Schließen von Ressourcen
385
Ausnahmen bestätigen die Regel
388
11 Wilde Ströme – Eingabe und Ausgabe – Dateien, Streams und Serialisierung
417
Bossingen kommt mit Dateien
418
Willst du mehr? Probier’s binär!
419
Binärdateien schreiben – auch mit Byte-Streams
421
Megalangsam – Dateien kopieren mit normalen Streams
422
Viel schneller – Dateien kopieren mit Buffered Streams
423
Wer liest schon Bytes? Textdateien lesen mit Character-Streams
424
Textdateien schreiben mit Character-Streams
425
1:0 für den CSV – Textdateien umwandeln
426
Mit Kanonen auf Verzeichnisse schießen
429
Endlich Ordnung – Dateien und Verzeichnisse erstellen
430
Kundendaten konvertieren am Fließband
432
Gut gefiltert ist halb gewonnen – Verzeichnisse filtern
434
Auf dem richtigen Pfad: Die neue File-IO-API
435
Kundendateien konvertieren – jetzt noch einfacher
438
Geschachtelte Objekte speichern
443
Serialisierung und Deserialisierung beeinflussen
445
Individuelle Serialisierung mit writeObject() und readObject()
446
Der Nusskopf und die Kopfnuss
448
Nochmal alles zum mitstreamen
450
12 Nicht den Faden verlieren – Programmierung mit Threads
451
Night of the living thread
455
Das war gerade noch ungerade
457
Da krieg ich Zustände
459
Threads schlafen legen
460
Erst die geraden Zahlen, bitte!
468
Deadlocks finden und umgehen
471
Der Schlüssel zum Erfolg
473
Livelock, Starvation, Priorisierung und ein Bier
475
Warten und benachrichtigen
480
4 000 gegen 2 oder Arbeit verteilen
485
Die Zusammenfassung, damit du nicht den Faden verlierst
489
14 Austauschschüler – das Datenaustauschformat XML
515
Ist es ein Element oder ein Attribut?
529
Der Spürhund – Simple API for XML
530
Der trainierte Spürhund oder »Don’t call me, I'll call you« – StAX
534
Das Document Object Model …
537
1, 2 oder 3? SAX, StAX oder DOM? Was nehme ich wann?
545
Viele Wege führen nach Java
547
Von XML nach Java und wieder zurück
551
Die XTra, XPlizite, Xakte, XOrbitante Zusammenfassung
557
15 Datenspeicherung mit JDBC – Datenbanken
559
Relationale Datenbanken
560
Die erste Tabelle mit SQL
561
Eine Verbindung herstellen
565
Datensätze hinzufügen
567
Helden und Briefmarken
569
Anweisungen zusammenfassen
572
Was hätten’S denn gerne? Datensätze nach Kriterien auswählen
576
Daten sortiert ausgeben
578
Wer ist der Stärkste im ganzen Land?
579
Informationen aus mehreren Tabellen über Joins verknüpfen
583
Alles wieder zurück bitte – Transaktionen
584
Mapping zwischen relationalen Datenbanken und Java-Objekten
586
Roll zurück den Troll
587
SELECT DAS_WICHTIGSTE FROM KAPITEL_15
591
16 Neue Tanzschritte – GUI-Programmierung mit Swing und JavaFX
593
Mit Schwung weg von der Konsole – Swing
594
Alles im Rahmen – wie du GUI-Komponenten erstellst
594
Alles in Reih und Glied – wie du GUI-Komponenten anordnen kannst
597
GUI-Komponenten anordnen kannst
597
Alles im Raster mit dem Grid-Layout
600
Zellen verbinden mit dem Grid-Bag-Layout
602
Schuhe in der Box … oder doch besser im Grid?
606
Ordnung: gut, Verhalten: … nichts? Wie du GUI-Komponenten das Verhalten hinzufügst
609
Validierung von Nutzereingaben mit Swing
613
Bunter und mehr Action mit JavaFX
618
Auf die große Bühne – JavaFX on stage
620
Noch mehr Zucker mit CSS
624
Das Verhalten hinzufügen
626
Validierung von Nutzereingaben mit JavaFX
627
Schiebereien mit JavaFX
628
Für Profis – Verhalten hinzufügen ohne Listener
629
Schieberegler mit Verhalten
631
Die Lösung für den Hardcore-Profi – Binding kann auch rechnen
632
Das Wichtigste zur Gesellenprüfung Maler und Lackierer, Fachbereich Swing und JavaFX
635
17 Schrödinger goes international – Internationalisierung, Lokalisierung, Formatierung, Pattern Matching und reguläre Ausdrücke
637
Den Nutzer lokalisieren
638
Die Software internationalisieren
641
Finnische Schuhkartons
643
Speak english per favore
646
Zahlen und Währungen formatieren
651
Datums- und Zeitangaben formatieren
652
Internationalisierte Textmeldungen formatieren
656
Das wurde aber auch Zeit – die neue Date- und Time-API
657
Zeitzone, Zeitlinie, Zeitpunkte und Zeitdauern
658
Ohne Zeitlinie – Datum, Zeit und Zeiträume
660
Zeitzonen und Zeitunterschiede
662
Alles nochmal auf einen Blick, so viel Zeit muss sein
663
Formatierung von Datums- und Zeitangaben
664
Formatieren über die Klasse String
665
Pattern Matching mit regulären Ausdrücken
668
Kein Anschluss unter dieser Nummer
673
Drin oder nicht drin? Keine Frage!
675
Auf einzelne Teile zugreifen über Gruppen
676
E-Mail-Adressen validieren
677
Tiivistelmä pääkohdista – das war Finnisch
679