Sie sind hier
E-Book

Effective Java

Best Practices für die Java-Plattform

AutorJoshua Bloch
Verlagdpunkt
Erscheinungsjahr2018
Seitenanzahl410 Seiten
ISBN9783960886389
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis36,90 EUR
Seit der Vorauflage von 'Effective Java', die kurz nach dem Release von Java 6 erschienen ist, hat sich Java dramatisch verändert. Dieser preisgekrönte Klassiker wurde nun gründlich aktualisiert, um die neuesten Sprach- und Bibliotheksfunktionen vorzustellen. Erneut zeigt Java-Kenner Joshua Bloch anhand von Best Practices, wie Java moderne Programmierparadigmen unterstützt. Wie in früheren Ausgaben besteht jedes Kapitel von 'Effective Java' aus mehreren Themen, die jeweils in Form eines kurzen, eigenständigen Essays präsentiert werden. Dieses enthält jeweils spezifische Ratschläge, Einblicke in die Feinheiten der Java-Plattform und Codebeispiele. Umfassende Beschreibungen und Erklärungen für jedes Thema beleuchten, was zu tun ist, was nicht zu tun ist und warum es zu tun ist. Die dritte Auflage behandelt Sprach- und Bibliotheksfunktionen, die in Java 7, 8 und 9 hinzugefügt wurden, einschließlich der funktionalen Programmierkonstrukte. Neue Themen sind unter anderem: - Functional Interfaces, Lambda-Ausdrücke, Methodenreferenzen und Streams - Default- und statische Methoden in Interfaces - Type Inference, einschließlich des Diamond-Operators für generische Typen - Die Annotation @SafeVarargs - Das Try-with-Resources-Statement - Neue Bibliotheksfunktionen wie das Optional Interface, java.time und die Convenience-Factory-Methoden für Collections

Joshua Bloch ist Professor an der Carnegie Mellon University. Er war früher Chief Java Architect bei Google, ein Distinguished Engineer bei Sun Microsystems sowie Senior System Designer bei Transarc. Er leitete das Design und die Implementierung zahlreicher Java- Plattformfunktionen, einschließlich der JDK-5.0-Spracherweiterungen und des Java-Collections-Frameworks. Er hat einen Ph.D. in Informatik von der Carnegie Mellon University und einen B.S. in Informatik von der Columbia University.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Effective Java3
Impressum4
Inhaltsverzeichnis5
Vorbemerkung11
Vorwort13
Danksagung14
Kapitel 1 - Einleitung15
Kapitel 2 - Objekte erzeugen und auflösen19
2.1 Thema 1: Statische Factory-Methoden als Alternative zu Konstruktoren19
2.2 Thema 2: Erwägen Sie bei zu vielen Konstruktorparametern den Einsatz eines Builders24
2.3 Thema 3: Erzwingen Sie die Singleton-Eigenschaft mit einem private-Konstruktor oder einem Aufzählungstyp32
2.4 Thema 4: Erzwingen Sie die Nicht-Instanziierbarkeit mit einem private-Konstruktor34
2.5 Thema 5: Arbeiten Sie mit Dependency Injection statt Ressourcen direkt einzubinden35
2.6 Thema 6: Vermeiden Sie die Erzeugung unnötiger Objekte37
2.7 Thema 7: Löschen Sie veraltete Objektreferenzen41
2.8 Thema 8: Vermeiden Sie Finalizer und Cleaner44
2.9 Thema 9: Verwenden Sie try-with-resources anstelle von try-finally49
Kapitel 3 - Methoden, die allen Objekten gemeinsam sind53
3.1 Thema 10: Halten Sie beim Überschreiben von equals den allgemeinen Vertrag ein53
3.2 Thema 11: Überschreiben Sie, wenn Sie equals überschreiben, immer auch hashCode66
3.3 Thema 12: Überschreiben Sie immer toString71
3.4 Thema 13: Vorsicht beim Überschreiben von clone74
3.5 Thema 14: Denken Sie darüber nach, Comparable zu implementieren83
Kapitel 4 - Klassen und Schnittstellen91
4.1 Thema 15: Minimieren Sie den Zugriff auf Klassen und Member91
4.2 Thema 16: Verwenden Sie in öffentlichen Klassen Accessor- Methoden und keine öffentlichen Felder96
4.3 Thema 17: Bevorzugen Sie unveränderliche Klassen98
4.4 Thema 18: Ziehen Sie Komposition der Vererbung vor106
4.5 Thema 19: Entwerfen und dokumentieren Sie für Vererbung oder verbieten Sie sie112
4.6 Thema 20: Geben Sie Schnittstellen den Vorzug vor abstrakten Klassen118
4.7 Thema 21: Entwerfen Sie Ihre Schnittstellen für die Nachwelt123
4.8 Thema 22: Verwenden Sie Schnittstellen nur zum Definieren von Typen126
4.9 Thema 23: Arbeiten Sie mit Klassenhierarchien statt mit Tag-Klassen128
4.10 Thema 24: Ziehen Sie statische Member-Klassen den nicht-statischen vor131
4.11 Thema 25: Beschränken Sie Quelltextdateien auf eine einzige Toplevel-Klasse135
Kapitel 5 - Java Generics137
5.1 Thema 26: Hände weg von Rohtypen137
5.2 Thema 27: Eliminieren Sie unchecked-Warnungen143
5.3 Thema 28: Verwenden Sie Listen statt Arrays145
5.4 Thema 29: Bevorzugen Sie generische Typen150
5.5 Thema 30: Bevorzugen Sie generische Methoden155
5.6 Thema 31: Eingeschränkte Wildcard-Typen machen Ihre APIs flexibler159
5.7 Thema 32: Vorsicht beim Kombinieren von Java Generics mit varargs-Methoden166
5.8 Thema 33: Nutzen Sie typsichere heterogene Container171
Kapitel 6 - Aufzählungen und Annotationen177
6.1 Thema 34: Verwenden Sie Aufzählungen statt int- Konstanten177
6.2 Thema 35: Verwenden Sie Instanzfelder statt Ordinalzahlen188
6.3 Thema 36: Verwenden Sie EnumSet statt Bitfelder189
6.4 Thema 37: Verwenden Sie EnumMap statt Ordinalzahlindizierung191
6.5 Thema 38: Emulieren Sie erweiterbare Enums mit Schnittstellen196
6.6 Thema 39: Ziehen Sie die Annotationen den Namensmustern vor200
6.7 Thema 40: Verwenden Sie konsequent die Annotation Override208
6.8 Thema 41: Definieren Sie Typen mit Markierungsschnittstellen211
Kapitel 7 - Lambdas und Streams215
7.1 Thema 42: Lambdas sind oft besser als anonyme Klassen215
7.2 Thema 43: Denken Sie an Methodenreferenzen als Alternative zu Lambdas219
7.3 Thema 44: Verwenden Sie nach Möglichkeit die funktionalen Schnittstellen aus dem Standard221
7.4 Thema 45: Setzen Sie Streams mit Bedacht ein226
7.5 Thema 46: Bevorzugen Sie in Streams Funktionen ohne Nebeneffekte234
7.6 Thema 47: Verwenden Sie als Rückgabewert eher Collection als Stream240
7.7 Thema 48: Seien Sie vorsichtig, wenn Sie Streams parallelisieren246
Kapitel 8 - Methoden251
8.1 Thema 49: Prüfen Sie Parameter auf Gültigkeit251
8.2 Thema 50: Erstellen Sie bei Bedarf defensive Kopien254
8.3 Thema 51: Entwerfen Sie Methodensignaturen sorgfältig259
8.4 Thema 52: Verwenden Sie Überladung mit Bedacht261
8.5 Thema 53: Verwenden Sie varargs mit Bedacht268
8.6 Thema 54: Geben Sie nicht null, sondern leere Sammlungen oder Arrays zurück270
8.7 Thema 55: Verwenden Sie den Rückgabetyp Optional mit Bedacht272
8.8 Thema 56: Schreiben Sie Doc-Kommentare für alle offengelegten API-Elemente277
Kapitel 9 - Allgemeine Programmierung285
9.1 Thema 57: Minimieren Sie den Gültigkeitsbereich lokaler Variablen285
9.2 Thema 58: Ziehen Sie for-each-Schleifen den traditionellen for-Schleifen vor288
9.3 Thema 59: Machen Sie sich mit den Bibliotheken vertraut und nutzen Sie sie291
9.4 Thema 60: Vermeiden Sie float und double, wenn genaue Antworten benötigt werden294
9.5 Thema 61: Ziehen Sie die elementaren Datentypen den Wrapper-Typen vor297
9.6 Thema 62: Vermeiden Sie Strings, wenn andere Typen besser geeignet sind300
9.7 Thema 63: Denken Sie an die Leistungseinbußen bei der String-Verkettung303
9.8 Thema 64: Referenzieren Sie Objekte über ihre Schnittstellen304
9.9 Thema 65: Ziehen Sie Schnittstellen der Java Reflection vor306
9.10 Thema 66: Vorsicht bei der Arbeit mit nativen Methoden309
9.11 Thema 67: Optimieren Sie mit Bedacht310
9.12 Thema 68: Halten Sie sich an die allgemein anerkannten Namenskonventionen314
Kapitel 10 - Ausnahmen319
10.1 Thema 69: Verwenden Sie Ausnahmen nur für Ausnahmebedingungen319
10.2 Thema 70: Verwenden Sie geprüfte Ausnahmen für behebbare Situationen und Laufzeitausnahmen für Programmierfehler322
10.3 Thema 71: Vermeiden Sie den unnötigen Einsatz von geprüften Ausnahmen324
10.4 Thema 72: Ziehen Sie Standardausnahmen vor326
10.5 Thema 73: Werfen Sie Ausnahmen passend zur Abstraktion328
10.6 Thema 74: Dokumentieren Sie alle Ausnahmen, die jede Methode auslöst331
10.7 Thema 75: Geben Sie in Detailnachrichten Fehlerinformationen an332
10.8 Thema 76: Streben Sie nach Fehleratomizität334
10.9 Thema 77: Ignorieren Sie Ausnahmen nicht336
Kapitel 11 - Nebenläufigkeit339
11.1 Thema 78: Synchronisieren Sie den Zugriff auf gemeinsam genutzte, veränderliche Daten339
11.2 Thema 79: Vermeiden Sie übermäßige Synchronisation344
11.3 Thema 80: Ziehen Sie Exekutoren, Aufgaben und Streams den Threads vor351
11.4 Thema 81: Ziehen Sie die Nebenläufigkeitsdienste den Methoden wait und notify vor353
11.5 Thema 82: Dokumentieren Sie die Thread-Sicherheit358
11.6 Thema 83: Verwenden Sie die späte Initialisierung mit Bedacht361
11.7 Thema 84: Verlassen Sie sich nicht auf den Thread-Planer365
Kapitel 12 - Serialisierung367
12.1 Thema 85: Verwenden Sie statt der Java-Serialisierung besser deren Alternativen367
12.2 Thema 86: Implementieren Sie Serializable mit großer Vorsicht371
12.3 Thema 87: Verwenden Sie möglichst eine eigene serialisierte Form375
12.4 Thema 88: Implementieren Sie readObject defensiv381
12.5 Thema 89: Ziehen Sie zur Instanzenkontrolle die Aufzählungstypen der Methode readResolve vor387
12.6 Thema 90: Verwenden Sie möglichst Serialisierungs-Proxys anstelle von serialisierten Instanzen391
Index395
Literatur407

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Archiv und Wirtschaft

Archiv und Wirtschaft

"Archiv und Wirtschaft" ist die viermal jährlich erscheinende Verbandszeitschrift der Vereinigung der Wirtschaftsarchivarinnen und Wirtschaftsarchivare e. V. (VdW), in der seit 1967 rund 2.500 ...

BONSAI ART

BONSAI ART

Auflagenstärkste deutschsprachige Bonsai-Zeitschrift, basierend auf den renommiertesten Bonsai-Zeitschriften Japans mit vielen Beiträgen europäischer Gestalter. Wertvolle Informationen für ...

Computerwoche

Computerwoche

Die COMPUTERWOCHE berichtet schnell und detailliert über alle Belange der Informations- und Kommunikationstechnik in Unternehmen – über Trends, neue Technologien, Produkte und Märkte. IT-Manager ...

Demeter-Gartenrundbrief

Demeter-Gartenrundbrief

Einzige Gartenzeitung mit Anleitungen und Erfahrungsberichten zum biologisch-dynamischen Anbau im Hausgarten (Demeter-Anbau). Mit regelmäßigem Arbeitskalender, Aussaat-/Pflanzzeiten, Neuigkeiten ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...

Evangelische Theologie

Evangelische Theologie

Über »Evangelische Theologie« In interdisziplinären Themenheften gibt die Evangelische Theologie entscheidende Impulse, die komplexe Einheit der Theologie wahrzunehmen. Neben den Themenheften ...