
Schrödinger programmiert Java
Das etwas andere Fachbuch
Philip Ackermann(Author)
Galileo Computing (Publisher)
1st Edition
Published on 28. December 2013
Book
Paperback/Softback
704 pages
978-3-8362-1740-8 (ISBN)
Article exhausted; check for reprint
Description
Vom 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 Anwendung.Mit Schrödinger und seinen witzigen Fragen macht guter Code richtig Spaß. Ihr programmiert, um Probleme zu lösen: zum Beispiel 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. Für Einsteiger, Umsteiger und Fans.Schrödinger garantiert:- 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- Swing- und Java-FX-GUIs mit Stil- Dateien, Streams und Datenbanken fest im Griff- Multithreading ohne Verstricken- Code, den Ihr auch übermorgen noch versteht- Alles für Java 7 und Java 8
Schrödinger garantiert:
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
Swing- und Java-FX-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
Unmengen an Beispielcode und Übungen
Fantastische Illustrationen
Reviews / Votes
»Im Gegensatz zu anderen Publikationen hat sich Galileo Press ein neues pädagogisches Konzept ausgedacht. Wo anderenorts das seit Jahrhunderten bewährte Schwarz auf Weiß mit eingestreuten Grafiken und Listing-Schnipseln herrscht, präsentiert der fiktive Programmierer Schrödinger einen wilden Stilmix aus Cartoons, Farben, Schriftarten und zahllosen Layoutelementen.«More details
Series
Language
German
Place of publication
Bonn
Germany
Publishing group
Rheinwerk
Edition type
New edition
Product notice
Klappenbroschur
Dimensions
Height: 23.5 cm
Width: 20 cm
ISBN-13
978-3-8362-1740-8 (9783836217408)
Schweitzer Classification
Other editions
New editions

Book
12/2019
3rd Edition
Rheinwerk
€49.90
Available immediately

Philip Ackermann
Schrödinger programmiert Java
Das etwas andere Fachbuch. Durchstarten mit Java und richtig viel Spaß! Für Einsteiger, Umsteiger und Code-Fans.
Book
07/2017
2nd Edition
Rheinwerk
€44.90
Article exhausted; check for reprint
Person
Arnold Willmer ist erfahrener C++-Entwickler und UNIX-Spezialist. Seine Bücher zeichnen sich im besonderen Maße durch seine ebenso verständliche wie unterhaltsame Schreibweise aus.
Content
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
Der Workspace ... 38
Die 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
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 und Dokumentation ... 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
Jetzt hast du's gepackt ... 505
14. Austauschschüler -- das Datenaustauschformat XML ... 507
XML ... 508
Russische Salami ... 514
Musikschule mit XML ... 519
Ist es ein Element oder ein Attribut? ... 521
XML lesen ... 522
Der Spürhund -- Simple API for XML ... 522
Der trainierte Spürhund oder »Don't call me, I'll call you« -- StAX ... 526
Die Cursor-API ... 527
Die Iterator-API ... 527
Das Document Object Model ... ... 529
Flower Power ... 532
XML schreiben ... 534
1, 2 oder 3? SAX, StAX oder DOM? Was nehme ich wann? ... 537
Viele Wege führen nach Java ... 539
JAXB ... 541
Von XML nach Java und wieder zurück ... 543
Power Flower ... 545
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
Gut vorbereitet ... 565
Daten auslesen ... 566
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
Wiederholung ... 582
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
Schuhschiebereien ... 606
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
Klassen laden ... 639
Wein oder Bier? ... 641
Zahlen und Währungen formatieren ... 643
Datums- und Zeitangaben formatieren ... 644
Währungsrechner ... 646
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
Mit Format ... 659
Pattern Matching mit regulären Ausdrücken ... 660
Kein Anschluss unter dieser Nummer ... 665
Teile finden ... 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
18. Bist du dir da sicher? Unit-Testen und Java Web Start continued -- Unit-Tests ... 673
Deine Klassen testen ... 674
Test-Frameworks ... 675
Ich hatte aber einen Cocktail bestellt ... 682
Ausnahmefälle testen ... 686
Gar nicht eklig ... 688
Java Web Start continued ... 690
Das wichtigste unit to know ... 693
Index ... 697