Hier klicken May Hier klicken Jetzt informieren Book Spring Store 2017 Cloud Drive Photos Learn More TDZ Hier klicken Mehr dazu Mehr dazu Shop Kindle PrimeMusic longss17
Prime Deals

Möchten Sie verkaufen? Hier verkaufen
Jeder kann Kindle Bücher lesen — selbst ohne ein Kindle-Gerät — mit der KOSTENFREIEN Kindle App für Smartphones, Tablets und Computer.
Den Verlag informieren!
Ich möchte dieses Buch auf dem Kindle lesen.

Sie haben keinen Kindle? Hier kaufen oder eine gratis Kindle Lese-App herunterladen.

Schrödinger programmiert Java: Das etwas andere Fachbuch (Galileo Computing) [Broschiert]

Philip Ackermann
4.5 von 5 Sternen  Alle Rezensionen anzeigen (40 Kundenrezensionen)

Erhältlich bei diesen Anbietern.


‹  Zurück zur Artikelübersicht

Inhaltsverzeichnis



  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

‹  Zurück zur Artikelübersicht