Schrödinger programmiert Java -  Philip Ackermann

Schrödinger programmiert Java (eBook)

Das etwas andere Fachbuch
eBook Download: PDF
2019 | 3. Auflage
712 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-7274-2 (ISBN)
Systemvoraussetzungen
49,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

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. Mit Schrödinger und seinen witzigen Fragen macht guter Code richtig Spaß. Von einfachen Schleifen bis zur fertigen Anwendung löst ihr Probleme wie die Frage, ob Schrödingers Freundin »solche Schuhe« nicht schon hat. Oder ob es wirklich schon wieder Dinkelpfannkuchen geben muss. Spitzen-Beispielcode, fantastisch illustriert. Für Einsteiger, Umsteiger und Fans.

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



Philip Ackermann ist CTO der Cedalo AG und Autor mehrerer Fachbücher und Fachartikel über Java und JavaScript. Seine Schwerpunkte liegen in der Konzeption und Entwicklung von Node.js- und JEE-Projekten in den Bereichen Industrie 4.0 und Internet of Things.

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 26
Kompilieren von Hand 27
Programm starten 30
Compiler und JVM unter der Lupe 31
Rätselstunde 32
Hexenstunde 33
Entwicklungsumgebungen 35
Eclipse herunterladen 35
Workspace und Workbench 36
Erstes Projekt 38
Pakete packen, aber ordentlich 41
Pakete anlegen leicht gemacht 43
Neue Klasse mit Eclipse 44
Miteinander reden 47
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
Zuschauen, wie der Heap wächst 216
Der Stack 222
Wie alles zusammenhängt 224
Die Katze war’s 226
Steap oder Hack 228
6 Woher hat er das bloß? – Vererbung 232
Vererbung 232
Noch weniger doppelter Code dank Vererbung 234
Der Apfel fällt nicht weit vom Stamm 236
Verhalten anpassen durch Überschreiben von Methoden 237
Überschreiben verboten 239
Blümchenvererbung 240
Ich will aber zu Opa und Oma! Was ist mit der Großelternklasse? 242
Vererbung und Konstruktoren 244
Die Konstruktorkette wieder reparieren 245
Wie war das nochmal mit den Konstruktoren? 248
Erbt der Sohn vom Vater oder der Vater vom Sohn? 249
Typumwandlungen 252
Upcasting 253
Den Typ überprüfen 254
Welche Methode hätten’s denn gerne? Methoden überladen 255
Abo-Service 256
Serviceorientiert vs. objektorientiert 258
Zurück zu den Objekten 259
Die volle Überladung 260
Deutschland sucht den Knetsuperstar 261
Zusammenfassung 263
7 Schnittstellen und andere leichte Verletzungen – Abstrakte Klassen und Interfaces 265
Abstrakte Klassen 266
Abstrakte Methoden 268
Digital oder analog? Hauptsache abstrakt! 270
Alles abstrakt, oder was? 278
Schnittstellen 279
Übungen zu Interfaces 284
Für die einen sind es Interfaces, … 286
Interfaces und Vererbung 287
Weniger ist manchmal mehr 289
Konstanten in Interfaces 290
Konstanten in Konstantenklassen 290
Statischer Import 291
Statische Blöcke 292
Konstanten über Enums 293
Interfaces – Wiederholung 294
Noch mehr Klassen 295
Statische Memberklassen 295
Nichtstatische Memberklassen 297
Lokale Klassen 298
Anonyme Klassen 299
Abstrakt und polymorph – alles klar, Schrödinger? 301
8 Hast du eigentlich einen Überblick über deine ganzen Schuhe? – Arrays, Collections & Maps
Ich will mehr davon – Beziehungen zu Katzen und andere Freundinnen 304
Objekte der Begierde 306
Ab in die nächste Dimension 307
Gib mir alles 308
Solche Schuhe hast du schon! 309
Alles muss man selber machen 310
Auf den Spuren der Objektgleichheit 312
Gleich ist gleich – oder doch nicht? 313
Arrays wachsen nicht mit 313
Schuhkollektionen 315
Solche Schuhe hast du immer noch! 317
Soll ich dir mal meine Schuhsammlung zeigen? 319
Der Iterator (hört sich krass an, oder?) 320
Link und listig 321
Einmal heißt einmal und dann keinmal mehr 322
Hash mich, ich bin der Frühling 323
Sets für die Kripo 324
Sets für den Schuhtester 327
Der richtige Hashcode 328
Bäume und Räume 331
Größer oder kleiner? 333
Sortieren ohne Bäume 336
Sortierte Schuhe 338
Mappen raus 339
So viele Schuhe hast du schon 340
Schlangen im Keller 343
Hinten anstellen! 344
Kompakt und funktional: Lambda-Ausdrücke 345
filter(), map() und reduce() 347
High Heels!!! 351
Nochmal alles ganz lambsam 353
9 Ausnahmsweise und um ganz sicher zu gehen – Exceptions 355
Aus Fehlern werden Ausnahmen 356
Deine erste Exception 357
Das Werfen vorbereiten 358
Fangen will gelernt sein 360
Ganz zum Schluss – der finally-Block 362
Hier werden Sie individuell behandelt 363
Vererbung von Exceptions 365
Die Ausnahme als Auskunftsobjekt – was ist eigentlich passiert? 366
Information erwünscht, Abhängigkeit unerwünscht 368
Exceptions weiterwerfen 369
Wann und wie behandeln 370
Exceptions immer weiterleiten? Nicht immer der richtige Weg 371
Muss man nicht fangen – Unchecked Exceptions 373
Defensiv programmieren gegen Runtime-Exceptions 376
Exceptions loggen 377
Lass den Türsteher mitloggen 378
Nicht mehr zu retten 380
Speicher voll 382
Automatisches Schließen von Ressourcen 383
Dateien lesen 384
Ausnahmen bestätigen die Regel 386
10 Ey Typ, du kummst hier nit rein! – Generics 389
Generische Typen 390
Bevor es Generics gab … 391
… und mit Generics 392
Hunde vs. Katzen 394
Katzenkorb als Unterklasse 395
Typisierte Interfaces 396
Wildcard-Typen – das Problem 397
Der nach oben beschränkte Wildcard-Typ 400
Der Haken: Schrödinger darf nicht schreiben 401
Der nach unten beschränkte Wildcard-Typ 404
Typisierte Methoden 406
Übungen zu Wildcards 407
Wiederholung 410
Kaffeesatz 413
11 Wilde Ströme – Eingabe und Ausgabe – Dateien, Streams und Serialisierung 415
Bossingen kommt mit Dateien 416
Willst du mehr? Probier’s binär! 417
Binärdateien schreiben – auch mit Byte-Streams 419
Megalangsam – Dateien kopieren mit normalen Streams 420
Viel schneller – Dateien kopieren mit Buffered Streams 421
Wer liest schon Bytes? Textdateien lesen mit Character-Streams 422
Textdateien schreiben mit Character-Streams 423
1:0 für den CSV – Textdateien umwandeln 424
Mit Kanonen auf Verzeichnisse schießen 427
Endlich Ordnung – Dateien und Verzeichnisse erstellen 428
Kundendaten konvertieren am Fließband 430
Gut gefiltert ist halb gewonnen – Verzeichnisse filtern 432
Auf dem richtigen Pfad: Die neue File-IO-API 433
Kundendateien konvertieren – jetzt noch einfacher 436
Objekte speichern 438
Geschachtelte Objekte speichern 441
Serialisierung und Deserialisierung beeinflussen 443
Individuelle Serialisierung mit writeObject() und readObject() 444
Der Nusskopf und die Kopfnuss 446
Nochmal alles zum mitstreamen 448
12 Nicht den Faden verlieren – Programmierung mit Threads 449
Prozesse und Threads 450
Der erste Thread 452
Night of the living thread 453
Das war gerade noch ungerade 454
Da krieg ich Zustände 457
Threads schlafen legen 458
Helden, aufgepasst! 459
Auf andere warten 462
Synchronisierung 463
Erst die geraden Zahlen, bitte! 466
… Deadlocks! 467
Deadlocks finden und umgehen 469
Der Schlüssel zum Erfolg 471
Livelock, Starvation, Priorisierung und ein Bier 473
… Livelock 473
Prioritäten setzen 476
Warten und benachrichtigen 478
Starvation 480
Warten und schlafen 482
4000 gegen 2 oder Arbeit verteilen 483
Die Zusammenfassung, damit du nicht den Faden verlierst 487
13 Das kann sich doch schon sehen lassen! – Deployment, Dokumentation und Module 489
Abgepackt 490
Ich packe meine JAR-Datei … 493
Java Web Start 495
Bibliotheken einbinden in Eclipse 497
Hallo Onkel Doc – Dokumentation mit javadoc 500
Strukturiert und modularisiert 503
Modular? Na klar! 507
Module kompilieren 509
Jetzt hast du’s gepackt 511
14 Austauschschüler – das Datenaustauschformat XML 513
XML 514
Russische Salami 520
Musikschule mit XML 525
Ist es ein Element oder ein Attribut? 527
XML lesen 528
Der Spürhund – Simple API for XML 528
Der trainierte Spürhund oder „Don’t call me, I'll call you“ – StAX 532
Die Cursor-API 533
Die Iterator-API 533
Das Document Object Model … 535
Flower Power 538
XML schreiben 540
1, 2 oder 3? SAX, StAX oder DOM? Was nehme ich wann? 543
Viele Wege führen nach Java 545
JAXB 547
Von XML nach Java und wieder zurück 549
Power Flower 551
Die XTra, XPlizite, Xakte, XOrbitante Zusammenfassung 555
15 Datenspeicherung mit JDBC – Datenbanken 557
Relationale Datenbanken 558
Die erste Tabelle mit SQL 559
Eine Verbindung herstellen 563
Datensätze hinzufügen 565
Helden und Briefmarken 567
Anweisungen zusammenfassen 570
Gut vorbereitet 571
Daten auslesen 572
Was hätten’S denn gerne? Datensätze nach Kriterien auswählen 574
Daten sortiert ausgeben 576
Wer ist der Stärkste im ganzen Land? 577
Informationen aus mehreren Tabellen über Joins verknüpfen 581
Alles wieder zurück bitte – Transaktionen 582
Mapping zwischen relationalen Datenbanken und Java-Objekten 584
Roll zurück den Troll 585
Wiederholung 588
SELECT DAS_WICHTIGSTE FROM KAPITEL_15 589
16 Neue Tanzschritte – GUI-Programmierung mit Swing und JavaFX 591
Mit Schwung weg von der Konsole – Swing 592
Alles im Rahmen – wie du GUI-Komponenten erstellst 592
Alles in Reih und Glied – wie du GUI-Komponenten anordnen kannst 595
Alles im Raster mit dem Grid-Layout 598
Zellen verbinden mit dem Grid-Bag-Layout 600
Schuhe in der Box … oder doch besser im Grid? 604
Ordnung: gut, Verhalten: … nichts? Wie du GUI-Komponenten das Verhalten hinzufügst 607
Validierung von Nutzereingaben mit Swing 611
Schuhschiebereien 612
Bunter und mehr Action mit JavaFX 616
Auf die große Bühne – JavaFX on stage 619
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 646
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 – java.time 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

Erscheint lt. Verlag 28.11.2019
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
ISBN-10 3-8362-7274-1 / 3836272741
ISBN-13 978-3-8362-7274-2 / 9783836272742
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 114,0 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Einführung, Ausbildung, Praxis

von Christian Ullenboom

eBook Download (2023)
Rheinwerk Computing (Verlag)
49,90