Zurück

In den Warenkorb

Empfehlung per E-Mail versenden

Probeexemplar anfordern

Gerne schicken wir Ihnen ein Probeexemplar an die angegeben Adresse.
Schrödinger programmiert Java

Schrödinger programmiert Java

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

vonAckermann, Philip
Deutsch, Erscheinungstermin Dezember 2019
lieferbar

Buch (broschiert)

49,90 €
(inkl. MwSt.)

eBook (PDF ohne DRM)

49,90 €
(inkl. MwSt.)
Durchblicken, mitmachen und genießen!

Informationen zum Titel

978-3-8362-7272-8
Bonn
Dezember 2019
2020
3
3., aktualisierte und erweiterte Auflage 2020
Buch (broschiert)
1710 g
712
203 mm x 236 mm x 45 mm
Color of cover: Grey, Color of cover: Silver, Color of cover:, Color of cover: White, Bonn
Deutsch
Programmier- und Skriptsprachen, allgemein, Informatik, Informationstechnik (IT), allgemeine Themen



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


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


Durchblicken, mitmachen und genießen!
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.
»Programmierneulinge, die [...] noch gar kein Lehrbuch in der Hand hatten, finden in „Schrödinger programmiert Java“ wohl eine der erfrischendsten Aufmachungen, der auf dem Markt erhältlichen Programmierbücher.« (07/2020)
Kundenmitteilung
EU-Datenschutzgrundverordnung

Die DSGVO stärkt die Datenschutzrechte europaweit für uns alle. Bei vub haben wir aus diesem Anlass unsere Datenschutzerklärung grundlegend verändert:

  • Wir stellen noch übersichtlicher dar, wie und wofür wir personenbezogene Daten verarbeiten (wenn überhaupt, denn das Verwerten Ihrer persönlichen Daten ist überhaupt nicht unser Geschäft!).
  • Wir informieren in unserer neuen Datenschutzerklärung über die Kundenrechte.
  • Wir haben die Datenschutzerklärung übersichtlicher gestaltet.
  • Ab dem 25. Mai 2018 können Sie in Ihrem Kundenkonto im Menü unter „mein vub - Einstellungen“ den gewünschten Datenschutz selbst einstellen.

Bei Fragen wenden Sie sich bitte jederzeit an unseren vub-Kundenservice und Ihre bekannten Ansprechpartner unter premiumservice@vub.de.

Bestätigung