Schrödinger programmiert Java
Das etwas andere Fachbuch
"Ein neuer Weg bei der Vermittlung von Entwickler-Fachwissen!" - c't zur Schrödinger-Reihe
Vom Feinsten! Die Java-Einführung, die Dir den vollen Durchblick verschafft. Schreibe von Anfang an auf Profi-Art, objektorientiert, mit Interfaces, Generics und...
Vom Feinsten! Die Java-Einführung, die Dir den vollen Durchblick verschafft. Schreibe von Anfang an auf Profi-Art, objektorientiert, mit Interfaces, Generics und...
Leider schon ausverkauft
Buch (Kartoniert)
- Lastschrift, Kreditkarte, Paypal, Rechnung
- Kostenlose Rücksendung
Produktdetails
Produktinformationen zu „Schrödinger programmiert Java “
Klappentext zu „Schrödinger programmiert Java “
"Ein neuer Weg bei der Vermittlung von Entwickler-Fachwissen!" - c't zur Schrödinger-ReiheVom Feinsten! Die Java-Einführung, die Dir den vollen Durchblick verschafft. Schreibe von Anfang an auf Profi-Art, objektorientiert, mit Interfaces, Generics und auf dem neuesten Stand. Von einfachen Schleifen bis zur fertigen Webanwendung. Mit Schrödinger und seinen witzigen Fragen macht guter Code richtig Spaß. Ihr programmiert, um Probleme zu lösen: etwa die Frage, ob Schrödingers Freundin "solche Schuhe" nicht schon hat. Oder ob es wirklich schon wieder Dinkelpfannkuchen geben muss. Aber Achtung: Hier geht es um saubere Software-Entwicklung. Spitzen-Beispielcode, fantastisch illustriert.
Das alles, und noch viel mehr:
Installationshilfe und gründlicher Einstieg
Objektorientierung aus der Profi-Praxis
Alle neuen Entwicklungen im Blick
Spaß mit Collections, Interfaces und Generics
XML-Parser für alle Fälle
JavaFX-GUIs mit Stil
Dateien, Streams und Datenbanken fest im Griff
Mutithreading ohne Verstricken
Code, den ihr auch übermorgen noch versteht
Keine Angst vor regulären Ausdrücken
Unit Tests und Test Driven Design
Unmengen an Beispielcode und Übungen
Inhaltsverzeichnis zu „Schrödinger programmiert Java “
An den Leser ... 2
Schrödingers Büro ... 4
Schrödingers Werkstatt ... 6
Schrödingers Wohnzimmer ... 8
Impressum ... 10
Inhaltsverzeichnis ... 12
Vorwort ... 21
1. Hallo Schrödinger -- Einführung und erstes Programm ... 23
Java überall ... 24
JRE, JDK, SE, EE, ME ... 24
Java installieren ... 25
Hallo Schrödinger ... 28
Kompilieren von Hand ... 29
Programm starten ... 32
Compiler und JVM unter der Lupe ... 33
Rätselstunde ... 34
Hexenstunde ... 35
Entwicklungsumgebungen ... 37
Eclipse herunterladen ... 37
Workspace und Workbench ... 38
Erstes Projekt ... 40
Pakete packen, aber ordentlich ... 43
Pakete anlegen leicht gemacht ... 45
Neue Klasse mit Eclipse ... 46
Miteinander reden ... 48
Streams ... 50
Let the game begin -- das »World of Warcraft Textadventure« ... 52
Historie von Java ... 57
2. Alles eine Typfrage -- Variablen und grundlegende Datentypen ... 61
Variablen und Datentypen ... 62
Arten von Datentypen ... 63
Können wir Zahlen, bitte? ... 64
Lesbarkeit von langen Zahlen ... 67
Zahlensuppe ... 68
Binär, oktal, dezimal und hexadezimal ... 69
Variablennamen ... 71
Gute Namenswahl -- Java Code Conventions ... 73
Operationen ... 75
Dividieren und komplizieren ... 76
Genau rechnen mit BigDecimal ... 77
Ein bisschen mehr, nein, eher ein bisschen weniger ... 78
Rechenaufgaben ... 79
Konvertierung von Zahlen ... 80
Zeichen und Wunder ... 82
Ein Charakter namens Cäsar ... 84
Nichts als die Wahrheit ... 86
Vergleichsoperatoren ... 88
Sprich die Wahrheit ... 89
Wrapperklassen ... 91
Alles eine Typfrage ... 94
... mehr
Es kommt auf den Charakter an ... 95
Wrap-up ... 96
3. Hier war ich doch schon mal! -- Kontrollfluss ... 99
Kontrolle übernehmen ... 100
Wenn das Wörtchen »if« nicht wär ... 100
Halb voll oder halb leer ... 101
Entweder oder ... 102
Aberglauben ... 103
Boolesche Operatoren ... 105
Hör auf, so zu klammern ... 105
Kurzschreibweise ... 106
Bedingungsoperator ... 107
Mehrere Fälle behandeln ... 107
Leere Lehre ... 109
Switch the String ... 110
Realitätsfern ... 111
Schleifen drehen ... 114
Schachtelung ... 117
Schleifen binden lernen ... 118
Primzahlen ... 118
King Schrödinger ... 122
Nochmal gaaanz langsam, bitte ... 125
Schleifen abbrechen ... 128
Labels ... 129
Kalender ... 130
Zusammenfassung -- alles unter Kontrolle ... 134
4. Von Dinkelpfannekuchen und Buchstabensalat -- Arbeiten mit Strings ... 135
Strings definieren ... 136
Auf einzelne Zeichen zugreifen ... 138
Strings zerlegen ... 139
Zeichen für Zeichen ... 142
Vergleichen von Strings ... 145
Teile vergleichen ... 145
Gleich oder nicht gleich, oder doch teilweise gleich ... 147
Suchen und ersetzen in Strings ... 149
Speiseplanhacker ... 151
Summertime ... 153
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
Refactoring ... 174
Sauberer Quelltext ... 178
Methodenkommentare ... 179
Kann ich das zurückgeben? ... 180
Zurück zu den Nachrichten ... 181
Auf dem Weg zum Java-Ninja -- Klassen und Objekte ... 182
Kapselung ... 186
Setter und Getter ... 188
Der Fotoapparat unter der Lupe ... 191
Setter mit mehreren Parametern ... 192
Klassen vs. Objekte ... 194
Sichtbarkeit von Variablen und Methoden ... 196
Konstruktoren ... 198
Objekte in Strings umwandeln ... 202
Quelltext anhängen ... 203
Textuelle Beschreibung von Objekten ... 204
Fluent Interface ... 205
Nur für Profis -- Zerlegen des Fotoapparats ... 207
Referenzdatentypen, Heap, Garbage-Collection ... 211
Wenn der Heap zu voll wird ... 213
Destruktoren ... ... 214
Hab lieb den Heap ... 215
VisualVM Eclipse installieren ... 215
Der Stack ... 224
Wie alles zusammenhängt ... 226
Die Katze war's ... 228
Steap oder Hack ... 230
6. Woher hat er das bloß? -- Vererbung ... 233
Vererbung ... 234
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
Blümchenvererbung ... 242
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
Typumwandlungen ... 254
Upcasting ... 255
Den Typ überprüfen ... 256
Welche Methode hätten's denn gerne? Methoden überladen ... 257
Abo-Service ... 258
Serviceorientiert vs. objektorientiert ... 260
Zurück zu den Objekten ... 261
Die volle Überladung ... 262
Deutschland sucht den Knetsuperstar ... 263
Zusammenfassung ... 265
7. Schnittstellen und andere leichte Verletzungen -- Abstrakte Klassen und Interfaces ... 267
Abstrakte Klassen ... 268
Abstrakte Methoden ... 270
Digital oder analog? Hauptsache abstrakt! ... 272
Alles abstrakt, oder was? ... 280
Schnittstellen ... 281
Ü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
Statischer Import ... 293
Statische Blöcke ... 294
Konstanten über Enums ... 295
Interfaces -- Wiederholung ... 296
Noch mehr Klassen ... 297
Statische Memberklassen ... 297
Nichtstatische Memberklassen ... 299
Lokale Klassen ... 300
Anonyme Klassen ... 301
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
Objekte der Begierde ... 308
Ab in die nächste Dimension ... 309
Gib mir alles ... 310
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
Schuhkollektionen ... 317
Solche Schuhe hast du immer noch! ... 319
Soll ich dir mal meine Schuhsammlung zeigen? ... 321
Der Iterator (hört sich krass an, oder?) ... 322
Link und listig ... 323
Einmal heißt einmal und dann keinmal mehr ... 324
Hash mich, ich bin der Frühling ... 325
Sets für die Kripo ... 326
Sets für den Schuhtester ... 329
Der richtige Hashcode ... 330
Bäume und Räume ... 333
Größer oder kleiner? ... 335
Sortieren ohne Bäume ... 338
Sortierte Schuhe ... 340
Mappen raus ... 341
So viele Schuhe hast du schon ... 342
Schlangen im Keller ... 345
Hinten anstellen! ... 346
Lala-lalalala-lala-la, bald ist Java 8 mit Lambda da ... 347
filter(), map() und reduce() ... 349
High Heels!!! ... 353
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
Exceptions loggen ... 379
Lass den Türsteher mitloggen ... 380
Nicht mehr zu retten ... 382
Speicher voll ... 384
Automatisches Schließen von Ressourcen ... 385
Dateien lesen ... 386
Ausnahmen bestätigen die Regel ... 388
10. Ey Typ, du kummst hier nit rein! -- Generics ... 391
Generische Typen ... 392
Bevor es Generics gab ... ... 393
... und mit Generics ... 394
Hunde vs. Katzen ... 396
Katzenkorb als Unterklasse ... 397
Typisierte Interfaces ... 398
Wildcard-Typen -- das Problem ... 399
Der nach oben beschränkte Wildcard-Typ ... 402
Der Haken: Schrödinger darf nicht schreiben ... 403
Der nach unten beschränkte Wildcard-Typ ... 406
Typisierte Methoden ... 408
Übungen zu Wildcards ... 409
Wiederholung ... 412
Kaffeesatz ... 415
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
Objekte speichern ... 440
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
Prozesse und Threads ... 452
Der erste Thread ... 454
Night of the living thread ... 455
Das war gerade noch ungerade ... 457
Da krieg ich Zustände ... 459
Threads schlafen legen ... 460
Helden, aufgepasst! ... 461
Auf andere warten ... 464
Synchronisierung ... 465
Erst die geraden Zahlen, bitte! ... 468
... Deadlocks! ... 469
Deadlocks finden und umgehen ... 471
Der Schlüssel zum Erfolg ... 473
Livelock, Starvation, Priorisierung und ein Bier ... 475
... Livelock ... 475
Prioritäten setzen ... 478
Warten und benachrichtigen ... 480
Starvation ... 482
Warten und schlafen ... 484
4 000 gegen 2 oder Arbeit verteilen ... 485
Die Zusammenfassung, damit du nicht den Faden verlierst ... 489
13. Das kann sich doch schon sehen lassen! -- Deployment, Dokumentation und Module ... 491
Abgepackt ... 492
Ich packe meine JAR-Datei ... ... 495
Java Web Start ... 497
Bibliotheken einbinden in Eclipse ... 499
Hallo Onkel Doc -- Dokumentation mit javadoc ... 502
Strukturiert und modularisiert ... 505
Modular? Na klar! ... 509
Module kompilieren ... 511
Jetzt hast du's gepackt ... 513
14. Austauschschüler -- das Datenaustauschformat XML ... 515
XML ... 516
Russische Salami ... 522
Musikschule mit XML ... 527
Ist es ein Element oder ein Attribut? ... 529
XML lesen ... 530
Der Spürhund -- Simple API for XML ... 530
Der trainierte Spürhund oder »Don't call me, I'll call you« -- StAX ... 534
Die Cursor-API ... 535
Die Iterator-API ... 535
Das Document Object Model ... ... 537
Flower Power ... 540
XML schreiben ... 542
1, 2 oder 3? SAX, StAX oder DOM? Was nehme ich wann? ... 545
Viele Wege führen nach Java ... 547
JAXB ... 549
Von XML nach Java und wieder zurück ... 551
Power Flower ... 553
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
Gut vorbereitet ... 573
Daten auslesen ... 574
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
Wiederholung ... 590
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
Schuhschiebereien ... 614
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
Klassen laden ... 647
Wein oder Bier? ... 649
Zahlen und Währungen formatieren ... 651
Datums- und Zeitangaben formatieren ... 652
Währungsrechner ... 654
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
Mit Format ... 667
Pattern Matching mit regulären Ausdrücken ... 668
Kein Anschluss unter dieser Nummer ... 673
Teile finden ... 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
18. Bist du dir da sicher? -- Unit-Testen und Java Web Start continued Unit-Tests ... 681
Deine Klassen testen ... 682
Test-Frameworks ... 683
Ich hatte aber einen Cocktail bestellt ... 690
Ausnahmefälle testen ... 694
Gar nicht eklig ... 696
Java Web Start continued ... 698
Das wichtigste unit to know ... 701
Index ... 705
Wrap-up ... 96
3. Hier war ich doch schon mal! -- Kontrollfluss ... 99
Kontrolle übernehmen ... 100
Wenn das Wörtchen »if« nicht wär ... 100
Halb voll oder halb leer ... 101
Entweder oder ... 102
Aberglauben ... 103
Boolesche Operatoren ... 105
Hör auf, so zu klammern ... 105
Kurzschreibweise ... 106
Bedingungsoperator ... 107
Mehrere Fälle behandeln ... 107
Leere Lehre ... 109
Switch the String ... 110
Realitätsfern ... 111
Schleifen drehen ... 114
Schachtelung ... 117
Schleifen binden lernen ... 118
Primzahlen ... 118
King Schrödinger ... 122
Nochmal gaaanz langsam, bitte ... 125
Schleifen abbrechen ... 128
Labels ... 129
Kalender ... 130
Zusammenfassung -- alles unter Kontrolle ... 134
4. Von Dinkelpfannekuchen und Buchstabensalat -- Arbeiten mit Strings ... 135
Strings definieren ... 136
Auf einzelne Zeichen zugreifen ... 138
Strings zerlegen ... 139
Zeichen für Zeichen ... 142
Vergleichen von Strings ... 145
Teile vergleichen ... 145
Gleich oder nicht gleich, oder doch teilweise gleich ... 147
Suchen und ersetzen in Strings ... 149
Speiseplanhacker ... 151
Summertime ... 153
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
Refactoring ... 174
Sauberer Quelltext ... 178
Methodenkommentare ... 179
Kann ich das zurückgeben? ... 180
Zurück zu den Nachrichten ... 181
Auf dem Weg zum Java-Ninja -- Klassen und Objekte ... 182
Kapselung ... 186
Setter und Getter ... 188
Der Fotoapparat unter der Lupe ... 191
Setter mit mehreren Parametern ... 192
Klassen vs. Objekte ... 194
Sichtbarkeit von Variablen und Methoden ... 196
Konstruktoren ... 198
Objekte in Strings umwandeln ... 202
Quelltext anhängen ... 203
Textuelle Beschreibung von Objekten ... 204
Fluent Interface ... 205
Nur für Profis -- Zerlegen des Fotoapparats ... 207
Referenzdatentypen, Heap, Garbage-Collection ... 211
Wenn der Heap zu voll wird ... 213
Destruktoren ... ... 214
Hab lieb den Heap ... 215
VisualVM Eclipse installieren ... 215
Der Stack ... 224
Wie alles zusammenhängt ... 226
Die Katze war's ... 228
Steap oder Hack ... 230
6. Woher hat er das bloß? -- Vererbung ... 233
Vererbung ... 234
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
Blümchenvererbung ... 242
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
Typumwandlungen ... 254
Upcasting ... 255
Den Typ überprüfen ... 256
Welche Methode hätten's denn gerne? Methoden überladen ... 257
Abo-Service ... 258
Serviceorientiert vs. objektorientiert ... 260
Zurück zu den Objekten ... 261
Die volle Überladung ... 262
Deutschland sucht den Knetsuperstar ... 263
Zusammenfassung ... 265
7. Schnittstellen und andere leichte Verletzungen -- Abstrakte Klassen und Interfaces ... 267
Abstrakte Klassen ... 268
Abstrakte Methoden ... 270
Digital oder analog? Hauptsache abstrakt! ... 272
Alles abstrakt, oder was? ... 280
Schnittstellen ... 281
Ü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
Statischer Import ... 293
Statische Blöcke ... 294
Konstanten über Enums ... 295
Interfaces -- Wiederholung ... 296
Noch mehr Klassen ... 297
Statische Memberklassen ... 297
Nichtstatische Memberklassen ... 299
Lokale Klassen ... 300
Anonyme Klassen ... 301
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
Objekte der Begierde ... 308
Ab in die nächste Dimension ... 309
Gib mir alles ... 310
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
Schuhkollektionen ... 317
Solche Schuhe hast du immer noch! ... 319
Soll ich dir mal meine Schuhsammlung zeigen? ... 321
Der Iterator (hört sich krass an, oder?) ... 322
Link und listig ... 323
Einmal heißt einmal und dann keinmal mehr ... 324
Hash mich, ich bin der Frühling ... 325
Sets für die Kripo ... 326
Sets für den Schuhtester ... 329
Der richtige Hashcode ... 330
Bäume und Räume ... 333
Größer oder kleiner? ... 335
Sortieren ohne Bäume ... 338
Sortierte Schuhe ... 340
Mappen raus ... 341
So viele Schuhe hast du schon ... 342
Schlangen im Keller ... 345
Hinten anstellen! ... 346
Lala-lalalala-lala-la, bald ist Java 8 mit Lambda da ... 347
filter(), map() und reduce() ... 349
High Heels!!! ... 353
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
Exceptions loggen ... 379
Lass den Türsteher mitloggen ... 380
Nicht mehr zu retten ... 382
Speicher voll ... 384
Automatisches Schließen von Ressourcen ... 385
Dateien lesen ... 386
Ausnahmen bestätigen die Regel ... 388
10. Ey Typ, du kummst hier nit rein! -- Generics ... 391
Generische Typen ... 392
Bevor es Generics gab ... ... 393
... und mit Generics ... 394
Hunde vs. Katzen ... 396
Katzenkorb als Unterklasse ... 397
Typisierte Interfaces ... 398
Wildcard-Typen -- das Problem ... 399
Der nach oben beschränkte Wildcard-Typ ... 402
Der Haken: Schrödinger darf nicht schreiben ... 403
Der nach unten beschränkte Wildcard-Typ ... 406
Typisierte Methoden ... 408
Übungen zu Wildcards ... 409
Wiederholung ... 412
Kaffeesatz ... 415
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
Objekte speichern ... 440
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
Prozesse und Threads ... 452
Der erste Thread ... 454
Night of the living thread ... 455
Das war gerade noch ungerade ... 457
Da krieg ich Zustände ... 459
Threads schlafen legen ... 460
Helden, aufgepasst! ... 461
Auf andere warten ... 464
Synchronisierung ... 465
Erst die geraden Zahlen, bitte! ... 468
... Deadlocks! ... 469
Deadlocks finden und umgehen ... 471
Der Schlüssel zum Erfolg ... 473
Livelock, Starvation, Priorisierung und ein Bier ... 475
... Livelock ... 475
Prioritäten setzen ... 478
Warten und benachrichtigen ... 480
Starvation ... 482
Warten und schlafen ... 484
4 000 gegen 2 oder Arbeit verteilen ... 485
Die Zusammenfassung, damit du nicht den Faden verlierst ... 489
13. Das kann sich doch schon sehen lassen! -- Deployment, Dokumentation und Module ... 491
Abgepackt ... 492
Ich packe meine JAR-Datei ... ... 495
Java Web Start ... 497
Bibliotheken einbinden in Eclipse ... 499
Hallo Onkel Doc -- Dokumentation mit javadoc ... 502
Strukturiert und modularisiert ... 505
Modular? Na klar! ... 509
Module kompilieren ... 511
Jetzt hast du's gepackt ... 513
14. Austauschschüler -- das Datenaustauschformat XML ... 515
XML ... 516
Russische Salami ... 522
Musikschule mit XML ... 527
Ist es ein Element oder ein Attribut? ... 529
XML lesen ... 530
Der Spürhund -- Simple API for XML ... 530
Der trainierte Spürhund oder »Don't call me, I'll call you« -- StAX ... 534
Die Cursor-API ... 535
Die Iterator-API ... 535
Das Document Object Model ... ... 537
Flower Power ... 540
XML schreiben ... 542
1, 2 oder 3? SAX, StAX oder DOM? Was nehme ich wann? ... 545
Viele Wege führen nach Java ... 547
JAXB ... 549
Von XML nach Java und wieder zurück ... 551
Power Flower ... 553
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
Gut vorbereitet ... 573
Daten auslesen ... 574
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
Wiederholung ... 590
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
Schuhschiebereien ... 614
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
Klassen laden ... 647
Wein oder Bier? ... 649
Zahlen und Währungen formatieren ... 651
Datums- und Zeitangaben formatieren ... 652
Währungsrechner ... 654
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
Mit Format ... 667
Pattern Matching mit regulären Ausdrücken ... 668
Kein Anschluss unter dieser Nummer ... 673
Teile finden ... 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
18. Bist du dir da sicher? -- Unit-Testen und Java Web Start continued Unit-Tests ... 681
Deine Klassen testen ... 682
Test-Frameworks ... 683
Ich hatte aber einen Cocktail bestellt ... 690
Ausnahmefälle testen ... 694
Gar nicht eklig ... 696
Java Web Start continued ... 698
Das wichtigste unit to know ... 701
Index ... 705
... weniger
Autoren-Porträt von Philip Ackermann
Ackermann, PhilipPhilip Ackermann ist Master of Science in Computer Science. Am Fraunhofer-Institut für Angewandte Informationstechnologie FIT arbeitet er als Software-Entwickler an Tools zum teilautomatisierten Testen von Web Compliance, z. B. der Barrierefreiheit von Webseiten. Wissenschaftlich befasst er sich außerdem mit der modellbasierten Simulation und Evaluierung von mobilen und Web 2.0-Anwendungen.
Bibliographische Angaben
- Autor: Philip Ackermann
- 2017, 2. Aufl., 712 Seiten, Maße: 19,7 x 23,6 cm, Kartoniert (TB), Deutsch
- Verlag: Rheinwerk Verlag
- ISBN-10: 3836245833
- ISBN-13: 9783836245838
Rezension zu „Schrödinger programmiert Java “
"Alles mutet deutlich lockerer, leichter, spielerischer an, als in einem klassischen Lehrbuch einer Programmiersprache. Man darf sich aber auch nicht täuschen: Am Ende muss der Leser dasselbe lernen, was auch eine herkömmliche Einführung vermitteln würde." LINUX MAGAZIN 201806
Kommentar zu "Schrödinger programmiert Java"
0 Gebrauchte Artikel zu „Schrödinger programmiert Java“
Zustand | Preis | Porto | Zahlung | Verkäufer | Rating |
---|
Schreiben Sie einen Kommentar zu "Schrödinger programmiert Java".
Kommentar verfassen