Der Weg zum Java-Profi (eBook)
1414 Seiten
dpunkt (Verlag)
978-3-96088-843-7 (ISBN)
Standardwerk in 5. Neuauflage !
- Das Standardwerk für die professionelle Javaentwicklung
- Fundierter Überblick über Profithemen, die man sonst nicht findet.
- Alles, was man braucht, um im Coding-Job mithalten zu können
Dieses Buch bietet eine umfassende Einführung in die professionelle Java-Entwicklung und vermittelt Ihnen das notwendige Wissen, um stabile und erweiterbare Softwaresysteme auf Java-SE-Basis zu bauen. Praxisnahe Beispiele helfen dabei, das Gelernte rasch umzusetzen. Neben der Praxis wird viel Wert auf das Verständnis zugrunde liegender Konzepte gelegt. Dabei kommen dem Autor Michael Inden seine umfangreichen Schulungs- und Entwicklererfahrungen zugute - und Ihnen als Leser damit ebenso. Diese Neuauflage wurde durchgehend überarbeitet und aktualisiert und berücksichtigt die Java-Versionen 9 bis 15. Ansonsten wurde der bewährte Themenmix der Vorauflagen beibehalten: Grundlagen, Analyse und Design: Professionelle Arbeitsumgebung - Objektorientiertes Design- Lambdas - Java-Grundlagen Bausteine stabiler Java-Applikationen: Collections-Framework - Stream-API - Datumsverarbeitung seit JDK 8 - Applikationsbausteine - Multithreading-Grundlagen - Modern Concurrency - Fortgeschrittene Java-Themen - Basiswissen Internationalisierung Fallstricke und Lösungen: Bad Smells - Refactorings - Entwurfsmuster Qualitätssicherung: Programmierstil und Coding Conventions - Unit Tests - Codereviews - Optimierungen Darüber hinaus thematisiert je ein Kapitel die Neuerungen in Java 12 bis 15 sowie die Modularisierung mit Project Jigsaw. Ergänzt wird das Ganze durch einen Anhang mit einen Überblick über Grundlagen zur Java Virtual Machine.
'Es ist wirklich ein gelungenes Buch für Java-Programmierer die ihre Kenntnisse vertiefen und professionalisieren wollen!' (rn-wissen.de)
'Vom motivierten Einsteiger bis zum Java-Profi, ein in Breite und Tiefe überzeugendes Werk [...] empfehle ich jedem, der sich ernsthaft mit professioneller Java-Entwicklung auseinandersetzen möchte.'
Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler. Nach seinem Studium in Oldenburg hat er bei diversen internationalen Firmen in verschiedenen Rollen etwa als Softwareentwickler, -architekt, Consultant, Teamleiter sowie Trainer gearbeitet. Zurzeit ist er als CTO und Leiter Academy in Zürich tätig. Michael Inden hat über zwanzig Jahre Berufserfahrung beim Entwurf komplexer Softwaresysteme gesammelt, an diversen Fortbildungen und mehreren Java-One-Konferenzen teilgenommen. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen mit ergonomischen GUIs sowie dem Coaching. Sein Wissen gibt er gerne als Trainer in internen und externen Schulungen und auf Konferenzen weiter, etwa bei der Java User Group Switzerland, bei der JAX/W-JAX, ch.open und den IT-Tagen.
Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler. Nach seinem Studium in Oldenburg hat er bei diversen internationalen Firmen in verschiedenen Rollen etwa als Softwareentwickler, -architekt, Consultant, Teamleiter sowie Trainer gearbeitet. Zurzeit ist er als CTO und Leiter Academy in Zürich tätig. Michael Inden hat über zwanzig Jahre Berufserfahrung beim Entwurf komplexer Softwaresysteme gesammelt, an diversen Fortbildungen und mehreren Java-One-Konferenzen teilgenommen. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen mit ergonomischen GUIs sowie dem Coaching. Sein Wissen gibt er gerne als Trainer in internen und externen Schulungen und auf Konferenzen weiter, etwa bei der Java User Group Switzerland, bei der JAX/W-JAX, ch.open und den IT-Tagen.
Vorwort zur 5. Auflage
Sie halten die mittlerweile 5. Auflage dieses Buchs in den Händen. Das wurde nur durch den großen Zuspruch und das auch nach Jahren anhaltende Interesse für dieses Buch möglich. Somit geht zunächst ein herzlicher Dank an alle Leser der vorherigen Auflagen.
Diese 5. Auflage wurde vollständig auf Java 11 als derzeitige LTS-Version (Long Term Support) aktualisiert sowie in diversen Teilen überarbeitet und erweitert. Dieses Buch soll Ihnen einen fundierten Einstieg in die professionelle Java-Programmierung ermöglichen und damit Ihren Weg zum Java-Profi erleichtern. Wie schon aus den Vorgängern gewohnt, gebe ich immer wieder Tipps aus dem Praxisalltag, weise auf Fallstricke hin und zeige Lösungswege auf. Damit Sie aber am Puls der Zeit sind und über alles Wesentliche bis hin zum aktuellen Java 15 Bescheid wissen, behandle ich die vielfältigen Neuerungen ebenso wie die Modularisierung in jeweils eigenen Kapiteln. Für eine noch umfassendere Behandlung der Thematik verweise ich Sie auf mein Buch »Java – die Neuerungen in Version 9 bis 14: Modularisierung, Syntax- und API-Erweiterungen« [41].
Änderungen in dieser 5. Auflage
Im Rahmen der Überarbeitung für diese 5. Auflage habe ich das Buch nochmals vollständig gelesen und kritisch beleuchtet. Dadurch konnten kleinere Unstimmigkeiten, missverständliche Formulierungen und ein paar verbliebene Tippfehler erkannt und korrigiert werden. Zudem habe ich die Anregungen und Wünsche von Lesern sowie von Kollegen und Freunden mit eigenen Ideen kombiniert. Daraus sind diverse Ergänzungen und Überarbeitungen in den bereits vorhandenen Kapiteln entstanden. Auch wurden verschiedene Dinge restrukturiert und thematisch neu gegliedert.
Nachfolgend liste ich wesentliche Änderungen dieser 5. Auflage im Vergleich zum Vorgänger auf:
- Kapitel 2 »Professionelle Arbeitsumgebung« – Der Text wurde leicht überarbeitet und aktualisiert, das gilt etwa für die Einführung ins Unit-Testen. Diese setzt nun auf JUnit 5. Darüber hinaus behandle ich das Build-Tool Ant in dieser 5. Auflage nicht mehr, da es in der Praxis kaum noch eine Rolle spielt. Zudem wurde die Beschreibung von Gradle auf die im September 2020 aktuelle Version 6.6.1 angepasst.
- Kapitel 3 »OO-Design« – In diesem Kapitel wurden ein paar Details und Beispiele leicht überarbeitet, um die Verständlichkeit weiter zu verbessern, etwa im Bereich der kovarianten Rückgabewerte. Zudem weise ich, wo sinnvoll, auf mögliche Vereinfachungen durch aktuelle Java-14- bzw. Java-15-Sprachmittel hin.
- Kapitel 4 »Lambdas, Methodenreferenzen und Defaultmethoden« – Dieses Kapitel enthält nun Neuerungen für Interfaces in Java 9. Außerdem wurde eine Beschreibung zu einer kosmetischen Erweiterung in Predicate<T> in JDK 11 ergänzt. Schließlich thematisiere ich nun ein kleines, aber wichtiges Detail bei der Definition von Lambdas und dem Zugriff auf Variablen.
- Kapitel 5 »Java-Grundlagen« – Die Behandlung der Java-Grundlagen wurde gestrafft, etwa im Bereich des alten APIs zur Dateiverwaltung. Zudem habe ich ganze Abschnitte wie denjenigen zum alten Datums-API entfernt und diverse Beispiele auf das moderne Date and Time API umgestellt. Außerdem wurden wesentliche Neuerungen aus Java 9 bis 11 an passenden Stellen, etwa im Bereich für Strings und auch für die Utility-Klasse Files oder die Syntaxneuerung var, integriert.
- Kapitel 6 »Das Collections-Framework« – Neben Detailkorrekturen inklusive inhaltlicher Straffung wurden einige Neuerungen aus Java 8 und 9 an passender Stelle hinzugefügt, insbesondere Collection-Factory-Methoden sowie Hilfsmethoden in der Klasse Arrays. Die Beschreibung zur Klasse Optional<T> wurde überarbeitet und um die Neuerungen aus Java 10 und 11 erweitert.
- Kapitel 7 »Stream-API« – In diesem Kapitel wurden einige inhaltliche Ergänzungen, etwa für die Kombination von skip() und limit(), sowie kleinere sprachliche Korrekturen vorgenommen. Darüber hinaus ist vor allem ein Abschnitt zu den Neuerungen im Stream-API in Java 9 hinzugefügt worden. Die Verarbeitung von ZIP-Dateien wurde als Praxisbeispiel entfernt.
- Kapitel 8 »Datumsverarbeitung seit JDK 8« – Dieses Kapitel hat ebenfalls kleine sprachliche Korrekturen sowie minimale Anpassungen zur Stringenz der Beispiele erfahren. Zudem werden nun Erweiterungen aus Java 9 beschrieben. Um die Möglichkeiten der Datumsarithmetik noch besser nachvollziehen zu können, habe ich zwei Beispiele ergänzt. Besonders erwähnenswert ist dasjenige zur Berechnung des Gehaltszahltags als Real-World-Example. Dieses verfolgt ein schrittweises Vorgehen mit dem Hinzufügen von jeweils kleinen Funktionsblöcken und zeigt auch gleich geeignetes Testing mit JUnit 5.
- Kapitel 9 »Applikationsbausteine« – In diesem Kapitel wurden diverse Kleinigkeiten angepasst und Kürzungen vorgenommen. Das betrifft vor allem die Themen Preferences sowie Wertebereichsprüfungen. Bei Letzterem wurde auf die Darstellung eigener Lösungen zugunsten von Google Guava verzichtet. Zudem habe ich das abschließende Beispiel zur Verarbeitung von CSV so umgestaltet, dass es nun das Java-14-Feature records nutzt.
- Kapitel 10 »Multithreading« – Dieses Kapitel hat diverse Detailänderungen erfahren und der Teil zu Producer-Consumer wurde gekürzt. Weil mittlerweile modernere und zu bevorzugende Konstrukte existieren, habe ich die Beschreibung zur zeitgesteuerten Ausführung mit Timer und TimerTask entfernt. Insbesondere wurden fortgeschrittenere Themen und die Beschreibung moderner APIs in ein eigenständiges Kapitel ausgelagert.
- Kapitel 11 »Modern Concurrency« – Dieses Kapitel wurde komplett neu gestaltet und diverse Beispiele ergänzt und prägnanter formuliert. Ziel ist es, modernere Concurrency-Konzepte vorzustellen. Die hier beschriebenen Concurrency Utilities und das Executor- sowie das Fork-Join-Framework erlauben es, statt auf Low-Level-Ebene zu parallelisierende Abläufe auf konzeptionell höherer Ebene umzusetzen. Aber es wird noch besser: Verarbeitungsabläufe lassen sich mithilfe von CompletableFuture sehr elegant beschreiben und parallelisieren. Abschließend thematisiere ich die Reactive Streams, die eine Verbindung zum Reactive Programming bilden.
- Kapitel 12 »Fortgeschrittene Java-Themen« – Der Text hat ein Facelift erhalten. Die Beispiele wurden durchgehend auf das Date and Time API aktualisiert. Insbesondere habe ich den Teil zur Garbage Collection deutlich gekürzt. Vollständig entfernt wurde die Beschreibung zur JavaScript-Verarbeitung, da diese mit Java 15 nicht mehr Bestandteil des JDKs ist. Eine Beschreibung zum HTTP/2-API wurde in diesem Kapitel ergänzt. Als Schmankerl schauen wir uns dort an, wie man damit REST-Calls absetzen und auf diese Weise Wechselkurse ermitteln kann.
- Kapitel 13 »Basiswissen Internationalisierung« – Der Text wurde in den Bereichen gekürzt, die das alte Datums-API behandelt haben. Diverse Teile verwenden jetzt das modernere Date and Time API aus Java 8. Da Java im Bereich Desktop und GUIs kaum mehr verwendet wird, habe ich die Beispiele, die JavaFX oder Swing nutzen, entfernt.
- Kapitel 17 »Refactorings« – Auch das Kapitel zu Refactorings hat einen Facelift erfahren. Vor allem wurden alle begleitenden Unit Tests auf JUnit 5 umgestellt. Zudem kam in einem Beispiel noch die Bibliothek Joda-Time zum Einsatz. Das wurde nun auf das Date and Time API des JDKs umgestellt.
- Kapitel 19 »Programmierstil und Coding Conventions« – Dieses Kapitel enthält Detailkorrekturen. Dabei wurden vor allem die Abschnitte zu den Tools überarbeitet und aktualisiert. Die Beschreibung zum Tool FindBugs sowie dessen Nachfolger SpotBugs wurde entfernt, da diese keine neuen Java-Versionen unterstützen, derzeit nicht einmal Java 10 und 11.
- Kapitel 20 »Unit Tests« – Auch hier wurde der gesamte Text überarbeitet und umstrukturiert. Vor allem wird nun konsequent das aktuelle JUnit 5 genutzt, wodurch sich einige Testfälle deutlich leichter als mit den Vorgängern beschreiben lassen. Insbesondere den parametrierten Tests wird viel Aufmerksamkeit gewidmet. Test Smells werden nun ausführlicher behandelt und zeigen konkrete Lösungsmöglichkeiten.
- Kapitel 22 »Optimierungen« – Die Performance-Messungen wurden mit JDK 14 wiederholt. Einige Messungen erfolgten ergänzend mit dem seit JDK 12 ins JDK integrierten JMH (Java Microbenchmark Harness). Beim Kopieren von Dateiinhalten wird nun auch die Variante mit...
Erscheint lt. Verlag | 4.12.2020 |
---|---|
Reihe/Serie | Programmieren mit Java | Programmieren mit Java |
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Schlagworte | Bad Smells • codereviews • Coding-Conventions • collections • Entwurfsmuster • Java 11 • Java 12 • java 13 • Java 14 • Java 15 • Java 8 • java 9 • JavaFX • Java SE • JDK • Jigsaw • lambdas • Modularisierung • Multithreading • Objektorientiertes Design • Programmierstil • Refactorings • Unit Tests |
ISBN-10 | 3-96088-843-0 / 3960888430 |
ISBN-13 | 978-3-96088-843-7 / 9783960888437 |
Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
Haben Sie eine Frage zum Produkt? |
Größe: 11,3 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich