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
507
Ist es ein Element oder ein Attribut?
521
Der Spürhund – Simple API for XML
522
Der trainierte Spürhund oder »Don’t call me, I'll call you« – StAX
526
Das Document Object Model …
529
1, 2 oder 3? SAX, StAX oder DOM? Was nehme ich wann?
537
Viele Wege führen nach Java
539
Von XML nach Java und wieder zurück
543
Die XTra, XPlizite, Xakte, XOrbitante Zusammenfassung
549
15 Datenspeicherung mit JDBC – Datenbanken
551
Relationale Datenbanken
552
Die erste Tabelle mit SQL
553
Eine Verbindung herstellen
557
Datensätze hinzufügen
559
Helden und Briefmarken
561
Anweisungen zusammenfassen
564
Was hätten’S denn gerne? Datensätze nach Kriterien auswählen
568
Daten sortiert ausgeben
570
Wer ist der Stärkste im ganzen Land?
571
Informationen aus mehreren Tabellen über Joins verknüpfen
575
Alles wieder zurück bitte – Transaktionen
576
Mapping zwischen relationalen Datenbanken und Java-Objekten
578
Roll zurück den Troll
579
SELECT DAS_WICHTIGSTE FROM KAPITEL_15
583
16 Neue Tanzschritte – GUI-Programmierung mit Swing und JavaFX
585
Mit Schwung weg von der Konsole – Swing
586
Alles im Rahmen – wie du GUI-Komponenten erstellst
586
Alles in Reih und Glied – wie du GUI-Komponenten anordnen kannst
589
Alles im Raster mit dem Grid-Layout
592
Zellen verbinden mit dem Grid-Bag-Layout
594
Schuhe in der Box … oder doch besser im Grid?
598
Ordnung: gut, Verhalten: … nichts? Wie du GUI-Komponenten das Verhalten hinzufügst
601
Validierung von Nutzereingaben mit Swing
605
Bunter und mehr Action mit JavaFX
610
Auf die große Bühne – JavaFX on stage
612
Noch mehr Zucker mit CSS
616
Das Verhalten hinzufügen
618
Validierung von Nutzereingaben mit JavaFX
619
Schiebereien mit JavaFX
620
Für Profis – Verhalten hinzufügen ohne Listener
621
Schieberegler mit Verhalten
623
Die Lösung für den Hardcore-Profi – Binding kann auch rechnen
624
Das Wichtigste zur Gesellenprüfung Maler und Lackierer, Fachbereich Swing und JavaFX
627
17 Schrödinger goes international – Internationalisierung, Lokalisierung, Formatierung, Pattern Matching und reguläre Ausdrücke
629
Den Nutzer lokalisieren
630
Die Software internationalisieren
633
Finnische Schuhkartons
635
Speak english per favore
638
Zahlen und Währungen formatieren
643
Datums- und Zeitangaben formatieren
644
Internationalisierte Textmeldungen formatieren
648
Das wurde aber auch Zeit – die neue Date- und Time-API
649
Zeitzone, Zeitlinie, Zeitpunkte und Zeitdauern
650
Ohne Zeitlinie – Datum, Zeit und Zeiträume
652
Zeitzonen und Zeitunterschiede
654
Alles nochmal auf einen Blick, so viel Zeit muss sein
655
Formatierung von Datums- und Zeitangaben
656
Formatieren über die Klasse String
657
Pattern Matching mit regulären Ausdrücken
660
Kein Anschluss unter dieser Nummer
665
Drin oder nicht drin? Keine Frage!
667
Auf einzelne Teile zugreifen über Gruppen
668
E-Mail-Adressen validieren
669
Tiivistelmä pääkohdista – das war Finnisch
671