Ackermann | Schrödinger programmiert Java | Buch | 978-3-8362-7272-8 | sack.de

Buch, Deutsch, 712 Seiten, Format (B × H): 203 mm x 236 mm, Gewicht: 1710 g

Reihe: Rheinwerk Computing

Ackermann

Schrödinger programmiert Java

Das etwas andere Fachbuch. Durchstarten mit Java und richtig viel Spaß! Für Einsteiger, Umsteiger und Code-Fans.
3., aktualisierte und erweiterte Auflage 2020
ISBN: 978-3-8362-7272-8
Verlag: Rheinwerk Verlag GmbH

Das etwas andere Fachbuch. Durchstarten mit Java und richtig viel Spaß! Für Einsteiger, Umsteiger und Code-Fans.

Buch, Deutsch, 712 Seiten, Format (B × H): 203 mm x 236 mm, Gewicht: 1710 g

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-7272-8
Verlag: Rheinwerk Verlag GmbH


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

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.