Schrödinger programmiert Java: Rheinwerk Computing
Autor Philip Ackermannde Limba Germană Paperback – 28 dec 2013
Mit Schrödinger und seinen witzigen Fragen macht guter Code richtig Spaß. Ihr programmiert, um Probleme zu lösen: etwa 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
- Mutithreading ohne Verstricken
- Code, den ihr auch übermorgen noch versteht
- Keine Angst vor regulären Ausdrücken
- Unmengen an Beispielcode und Übungen
- Fantastische Illustrationen
Din seria Rheinwerk Computing
- 20%
Preț: 345.67 lei - 20%
Preț: 355.00 lei - 20%
Preț: 452.74 lei - 20%
Preț: 154.18 lei - 20%
Preț: 243.62 lei - 20%
Preț: 177.63 lei - 20%
Preț: 388.61 lei - 20%
Preț: 195.34 lei - 20%
Preț: 272.51 lei - 20%
Preț: 282.20 lei - 20%
Preț: 202.67 lei - 20%
Preț: 430.57 lei - 20%
Preț: 243.05 lei - 20%
Preț: 340.26 lei - 20%
Preț: 203.77 lei - 20%
Preț: 182.65 lei - 20%
Preț: 187.33 lei - 20%
Preț: 176.60 lei - 20%
Preț: 191.10 lei - 20%
Preț: 277.90 lei -
Preț: 158.76 lei - 20%
Preț: 546.58 lei - 20%
Preț: 277.78 lei - 20%
Preț: 355.47 lei - 20%
Preț: 257.68 lei - 20%
Preț: 201.24 lei - 20%
Preț: 83.07 lei - 20%
Preț: 358.49 lei - 20%
Preț: 356.53 lei - 20%
Preț: 434.61 lei - 20%
Preț: 651.69 lei - 20%
Preț: 183.56 lei - 20%
Preț: 298.97 lei - 20%
Preț: 197.60 lei - 20%
Preț: 260.16 lei - 20%
Preț: 194.94 lei - 20%
Preț: 374.05 lei - 20%
Preț: 184.40 lei - 20%
Preț: 465.17 lei - 20%
Preț: 380.11 lei - 20%
Preț: 426.88 lei - 20%
Preț: 139.66 lei - 20%
Preț: 261.45 lei - 20%
Preț: 311.51 lei - 20%
Preț: 384.59 lei - 20%
Preț: 195.39 lei - 20%
Preț: 163.34 lei - 20%
Preț: 474.21 lei - 20%
Preț: 358.95 lei - 20%
Preț: 165.16 lei
Preț: 356.82 lei
Preț vechi: 446.02 lei
-20% Nou
Puncte Express: 535
Preț estimativ în valută:
63.14€ • 73.63$ • 55.44£
63.14€ • 73.63$ • 55.44£
Carte indisponibilă temporar
Doresc să fiu notificat când acest titlu va fi disponibil:
Se trimite...
Preluare comenzi: 021 569.72.76
Specificații
ISBN-13: 9783836217408
ISBN-10: 3836217406
Pagini: 704
Dimensiuni: 202 x 236 x 48 mm
Greutate: 1.75 kg
Editura: Rheinwerk Verlag GmbH
Seria Rheinwerk Computing
ISBN-10: 3836217406
Pagini: 704
Dimensiuni: 202 x 236 x 48 mm
Greutate: 1.75 kg
Editura: Rheinwerk Verlag GmbH
Seria Rheinwerk Computing
Notă biografică
Der Autor arbeitet am Fraunhofer-Institut für Angewandte Informationstechnologie als Java-Entwickler und Junior-Wissenschaftler an Tools zum teilautomatisiertem Testen von Web Compliance, z. B. der Barrierefreiheit von Webseiten.
Cuprins
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