Ackermann | Schrödinger programmiert Java | E-Book | sack.de
E-Book

E-Book, Deutsch, 712 Seiten

Reihe: Rheinwerk Computing

Ackermann Schrödinger programmiert Java

Das etwas andere Fachbuch
3. Auflage 2019
ISBN: 978-3-8362-7274-2
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection

Das etwas andere Fachbuch

E-Book, Deutsch, 712 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-7274-2
Verlag: Rheinwerk
Format: PDF
Kopierschutz: 0 - No protection



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.
Ackermann Schrödinger programmiert Java jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


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 ... 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 ... 303  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


Ackermann, Philip
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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.