Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Java 8 - Die Neuerungen (eBook)

Lambdas, Streams, Date and Time API und JavaFX 8 im Überblick
eBook Download: PDF | EPUB
2015 | 2. Auflage
319 Seiten
dpunkt (Verlag)
978-3-86491-750-9 (ISBN)

Lese- und Medienproben

Java 8 - Die Neuerungen -  Michael Inden
Systemvoraussetzungen
Systemvoraussetzungen
24,90 inkl. MwSt
(CHF 24,30)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Dieses Buch bietet einen fundierten Einstieg in Java 8 sowie einen Überblick über die umfangreichen Neuerungen in JDK 8. Damit eignet sich das Buch für all jene, die ihr Java-Wissen auffrischen und aktualisieren wollen. Die aktuelle Java-Version enthält zahlreiche Erweiterungen. Insbesondere die Einführung von Lambdas und des Stream-APIs stellen wegweisende Entwicklungen dar, die nun neben der objektorientierten auch die funktionale Programmierung in Java ermöglichen. Jeder ambitionierte Java-Entwickler sollte sie kennen, weil sich dadurch vollkommen neue Gestaltungsmöglichkeiten ergeben. Die Verarbeitung von Datumswerten hat eine grundlegene Überarbeitung erfahren und erleichtert die Daumsarithmetik enorm. Doch damit nicht genug: Die GUI-Technologie JavaFX wurde um einige neue Bedienelemente sowie Dialoge und die Unterstützung für 3D erweitert und schickt sich an, Swing abzulösen. Darüber hinaus geht der Autor auf diverse weitere Neuerungen ein, die JDK 8 bietet. In dieser zweiten Auflage wurden Kapitel zu Java 8 im Praxiseinsatz sowie zur Migration bestehender Projekte auf das neue JDK 8 ergänzt. Abgerundet wird dieses Buch durch einen Ausblick auf mögliche Funktionalitäten in JDK 9.

Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler für JDK 6. Nach seinem Studium in Oldenburg war er lange Zeit als Softwareentwickler und -architekt bei verschiedenen internationalen Firmen tätig. Dabei hat er über 15 Jahre Erfahrung beim Entwurf objektorientierter Softwaresysteme gesammelt, an diversen Fortbildungen und an mehreren Java-One-Konferenzen in San Francisco teilgenommen. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen mit ergonomischen, grafischen Oberflächen sowie dem Coaching von Kollegen.

Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler für JDK 6. Nach seinem Studium in Oldenburg war er lange Zeit als Softwareentwickler und -architekt bei verschiedenen internationalen Firmen tätig. Dabei hat er über 15 Jahre Erfahrung beim Entwurf objektorientierter Softwaresysteme gesammelt, an diversen Fortbildungen und an mehreren Java-One-Konferenzen in San Francisco teilgenommen. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen mit ergonomischen, grafischen Oberflächen sowie dem Coaching von Kollegen.

Inhaltsverzeichnis 5
Vorwort 13
Vorwort zur zweiten Auflage 9
1 Einleitung 19
2 Lambda-Ausdrücke 21
2.1 Einstieg in Lambdas 22
2.2 Defaultmethoden 29
2.3 Statische Methoden in Interfaces 36
2.4 Methodenreferenzen 38
2.5 Exceptions in Lambdas 40
2.6 Fazit 44
2.7 Übungen zu Lambdas, Methodenreferenzen und Defaultmethoden 45
3 Bulk Operations on Collections 49
3.1 Externe vs. interne Iteration 49
3.2 Collections-Erweiterungen 53
3.3 Streams 60
3.4 Filter-Map-Reduce 89
3.5 Datenaufbereitung mit Kollektoren 93
3.6 Fallstricke bei Lambdas und funktionaler Programmierung 107
3.7 Fazit 116
3.8 Übungen zu Collections und Bulk Operations 117
3.9 Übungen zu Streams und Filter-Map-Reduce 121
4 JSR-310: Date and Time API 125
4.1 Datumsverarbeitung vor JSR-310 125
4.2 Überblick über die neu eingeführten Typen 128
4.3 Datumsarithmetik 147
4.4 Das neue Date and Time API im Einsatz 150
4.5 Fazit 160
4.6 Übungen zum Date and Time API 161
5 Einstieg JavaFX 8 165
5.1 Einführung – JavaFX im Überblick 165
5.2 Deklarativer Aufbau des GUIs 180
5.3 Rich-Client Experience 185
5.4 Properties, Data Binding und Observable Collections 195
5.5 Neuerungen in JavaFX 8 206
5.6 Neuerungen in JavaFX 8 Update 40 221
5.7 Fazit 226
5.8 Übungen zu JavaFX 8 227
6 Weitere Änderungen in JDK 8 231
6.1 Erweiterungen im Interface Comparator< T>
6.2 Die Klasse Optional< T>
6.3 Parallele Operationen auf Arrays 242
6.4 Erweiterungen im Interface Map< K,V>
6.5 Erweiterungen im Bereich Concurrency 251
6.6 »Nashorn« – die neue JavaScript-Engine 257
6.7 Keine Permanent Generation mehr 260
6.8 Base64-Codierungen 260
6.9 Erweiterungen im Bereich Reflection 261
6.10 Erweiterungen im NIO und der Klasse Files 263
6.11 Änderungen bei Annotations 265
6.12 Berechnungen mit Überlaufprüfung 267
6.13 Übungen zu Diverses 268
7 Java 8 im Praxiseinsatz 273
7.1 Erste Schritte zur Informationsaufbereitung 274
7.2 Grafische Darstellung 278
7.3 Fazit 284
8 Tipps zur Migration von Java 7 auf Java 8 285
8.1 Stolpersteine in den Bibliotheken 285
8.2 Externe in interne Iterationen überführen 289
8.3 Von Swing zu JavaFX 291
9 Zusammenfassung und Ausblick 295
9.1 Zusammenfassung und Fazit 295
9.2 Ausblick auf JDK 9: Mit JDK 8 nicht umgesetzte Features 298
9.3 Weiterführende Literatur 301
Anhang 303
A Java und funktionale Programmierung 305
A.1 Programmierparadigmen im Überblick 305
A.2 Funktionale Programmierung an Beispielen 306
Literaturverzeichnis 309
Index 311
www.dpunkt.de 0

Vorwort


Zunächst einmal bedanke ich mich bei Ihnen, dass Sie sich für dieses Buch entschieden haben, um sich über die Neuerungen von Java 8 zu informieren. In den nachfolgenden Kapiteln möchte ich Ihnen diese brandaktuelle Java-Version mit ihren umfangreichen Erweiterungen näherbringen. Insbesondere sind Lambda-Ausdrücke und das Stream-API wegweisende Neuerungen, durch die nun neben der objektorientierten auch die funktionale Programmierung in Java möglich wird. Auch die lange Zeit stiefmütterlich behandelte Datumsarithmetik wurde in Java 8 aufpoliert. Doch damit nicht genug: Die GUI-Technologie JavaFX wurde sowohl um neue Bedienelemente als auch um die Unterstützung für Darstellungen in 3D erweitert. JavaFX schickt sich an, Swing bald als GUI-Framework abzulösen.

Wer sollte dieses Buch lesen?

Dieses Buch ist kein Buch für Programmierneulinge, sondern richtet sich an all diejenigen Leser, die einen fundierten Überblick über die mit Java 8 eingeführten Neuerungen erhalten wollen. Ich gehe also davon aus, dass Sie bereits einiges an Erfahrung mit Java mitbringen. Damit der Umstieg und das Nachvollziehen der Beispiele zu Java 8 leichter fällt, wird oftmals ein Vergleich zu einer herkömmlichen Lösung mit Java 7 dargestellt.

Ich setze zwar ein gutes Java-Grundwissen voraus, allerdings werden ausgewählte Themengebiete etwas genauer und gegebenenfalls einführend betrachtet, wenn dies das Verständnis der nachfolgenden Inhalte einfacher macht. Dies ist etwa für JavaFX der Fall: Dort beginne ich mit einer Darstellung der Grundlagen, weil die deutschsprachige Literatur gerade auf diesem Gebiet recht spärlich ist und sich sonst die Neuerungen aus JavaFX 8 nicht so gut nachvollziehen lassen würden.

Dieses Buch richtet sich im Speziellen an zwei Zielgruppen: Zum einen sind dies engagierte Hobbyprogrammierer, Informatikstudenten und Berufseinsteiger, die Java als Sprache beherrschen und nun neugierig auf die weitreichenden Änderungen in Java 8 sind. Zum anderen ist das Buch für erfahrenere Softwareentwickler und -architekten gedacht, die ihr Wissen ergänzen wollen, um für zukünftige Projekte abschätzen zu können, wann und in welchen Bereichen Java 8 eine gewinnbringende Alternative darstellen kann.

Was vermittelt dieses Buch?

Sie als Leser erhalten neben Theoriewissen eine Vertiefung durch praktische Beispiele, sodass der Umstieg auf Java 8 in eigenen Projekten erfolgreich gemeistert werden kann. Der Fokus dieses Buchs liegt auf dem praktischen Nutzen und den zugrunde liegenden Konzepten. Zur Verdeutlichung werden vereinfachte Beispiele aus dem realen Programmiereralltag genutzt. Um den Rahmen des Buchs nicht zu sprengen, stellen die abgebildeten Programmlistings häufig nur Ausschnitte aus lauffähigen Programmen dar. Deren Name wird in Kapitälchenschrift, etwa DATEPICKEREXAMPLE, angegeben.

Sourcecode und ausführbare Programme

Der Sourcecode kann auf der Webseite www.dpunkt.de/java-8 heruntergeladen werden. Zudem befindet sich dort ein Eclipse-Projekt, über das sich alle Programme ausführen lassen. Idealerweise nutzen Sie dazu ein aktuelles Eclipse 4.4 oder neuer. Zumindest benötigen Sie aber Eclipse 4.3.2 mit einem Update zur JDK-8-Unterstützung (frei verfügbar unter http://download.eclipse.org/eclipse/updates/4.3-P-builds/).

Aufbau dieses Buchs

Kapitel 1 Einführend erhalten Sie einen kurzen Überblick zu Java 8 und seine wegweisenden Neuerungen.

Kapitel 2 Kapitel 2 startet dann mit Lambdas, einer der bedeutsamsten Änderungen der Sprache seit der Einführung von Generics in Java 5. Lambdas führen zu einer vollkommen neuen Denkweise und bilden die Grundlage für die funktionale Programmierung mit Java.

Kapitel 3 Kapitel 3 zeigt dann, wie sich Lambdas gewinnbringend mit den diversen Erweiterungen im Collections-Framework, insbesondere dem Stream-API, kombinieren lassen. Dort wird unter anderem eine mächtige Filter-Map-Reduce-Funktionalität bereitgestellt – ähnlich wie man dies von NoSQL-Datenbanken zur Verarbeitung großer Datenmengen (Stichwort: Big Data) kennt.

Kapitel 4 Lange Zeit war die Verarbeitung von Datums- und Zeitangaben mit Java-Bordmitteln eher mühsam und zudem fehlerträchtig. Mit Java 8 ändert sich dies grundlegend. Das neue Date and Time API bereitet in seiner Nutzung viel Freude. Kapitel 4 gibt dazu einen Überblick.

Kapitel 5 Nicht nur intern, sondern auch im Bereich der Benutzeroberflächen wurde in Java 8 einiges verbessert. Zudem ist JavaFX nun fester Bestandteil des JDKs und wurde an die Versionsnummer von Java angepasst. Neben Detailverbesserungen sind die zwei Bedienelemente DatePicker und TreeTableView sowie die Unterstützung von 3D-Darstellungen bedeutende Erweiterungen. Kapitel 5 beginnt mit einem allgemeinen Einstieg in JavaFX und geht danach auf die Besonderheiten von JavaFX 8 ein.

Kapitel 6 Neben den in den vorangegangenen Kapiteln behandelten recht fundamentalen Änderungen enthält Java 8 noch eine Vielzahl weitere, zum Teil kleinere Verbesserungen, die aber allesamt das Programmiererleben deutlich erleichtern. Einige wesentliche werden in Kapitel 6 vorgestellt.

Kapitel 7 In Kapitel 7 stelle ich ein mit Java 8 umgesetztes reales Projekt vor und zeige, was sich mit Java 8 vereinfacht, und motiviere, warum Sie darauf wechseln sollten.

Kapitel 8 Bestimmt werden einige von Ihnen schon jetzt oder aber recht bald vor der Aufgabe und Herausforderung stehen, vorhandene Projekte auf Java 8 zu migrieren. Dieses Kapitel beschreibt einige mögliche Fallstricke sowie Lösungen, die den Umstieg erleichtern.

Kapitel 9 Kapitel 9 rekapituliert noch einmal die Neuerungen in Java 8 und zieht ein Fazit. Zudem wagen wir dort einen Ausblick auf mögliche Funktionalitäten in JDK 9. Abgerundet wird das Kapitel durch eine Übersicht zu weiterer Literatur zu Java 8, Lambdas und funktionaler Programmierung.

Anhang A Anhang A liefert eine knappe Einführung in verschiedene Programmierparadigmen und insbesondere in die funktionale Programmierung, die nun mit JDK 8 Einzug in Java gehalten hat.

Konventionen
Verwendete Zeichensätze

In diesem Buch gelten folgende Konventionen bezüglich der Schriftart: Neben der vorliegenden Schriftart werden wichtige Textpassagen kursiv oder kursiv und fett markiert. Englische Fachbegriffe werden eingedeutscht groß geschrieben, etwa Event Handling. Zusammensetzungen aus englischen und deutschen (oder eingedeutschten) Begriffen werden mit Bindestrich verbunden, z. B. Plugin-Manager. Namen von Programmen sowie Entwurfsmustern werden bei ihrer Verwendung in KAPITÄLCHEN dargestellt. Sourcecode-Listings sind in der Schrift courier gesetzt, um zu verdeutlichen, dass dieser Text einen Ausschnitt aus einem Java-Programm darstellt. Auch im normalen Text wird für Klassen, Methoden, Konstanten und Parameter diese Schriftart genutzt.

Verwendete Klassen aus dem JDK

Werden Klassen des JDKs zum ersten Mal im Text erwähnt, so wird deren voll qualifizierter Name, d. h. inklusive der Package-Struktur, angegeben: Für die Klasse String würde dann etwa java.lang.String notiert. Dies erleichtert eine Orientierung und ein Auffinden im JDK. Dies gilt insbesondere, da in den Listings nur selten import-Anweisungen abgebildet werden. Im nachfolgenden Text wird zur besseren Lesbarkeit auf diese Angabe verzichtet und nur der Klassenname genannt.

Im Text beschriebene Methodenaufrufe enthalten in der Regel die Typen der Übergabeparameter, etwa substring(int, int). Sind die Parameter in einem Kontext nicht entscheidend, wird mitunter auf deren Angabe aus Gründen der besseren Lesbarkeit verzichtet – das gilt ganz besonders für Methoden mit generischen Parametern.

Verwendete Abkürzungen

Im Buch verwende ich die in der nachfolgenden Tabelle aufgelisteten Abkürzungen. Weitere Abkürzungen werden im laufenden Text in Klammern nach ihrer ersten Definition aufgeführt und anschließend bei Bedarf genutzt.

Abkürzung

Bedeutung

JDK

Java Development Kit

JLS

Java Language Specification

JRE

Java Runtime Environment

JSR

Java Specification Request

JVM

Java Virtual Machine

API

Application Programming Interface

ASCII

American Standard Code for Information Interchange

(G)UI

(Graphical) User...

Erscheint lt. Verlag 2.9.2015
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
Schlagworte Coding-Conventions • Entwurfsmuster • Java • OO-Entwurf • Programmierstil • Refactorings
ISBN-10 3-86491-750-6 / 3864917506
ISBN-13 978-3-86491-750-9 / 9783864917509
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 5,2 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder 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 einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

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.

EPUBEPUB (Wasserzeichen)
Größe: 2,9 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­gerä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

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

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.

Mehr entdecken
aus dem Bereich
Einführung, Ausbildung, Praxis

von Christian Ullenboom

eBook Download (2023)
Rheinwerk Computing (Verlag)
CHF 48,75