Effektiv Java programmieren
Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
Kursziele
Joshua Bloch hat mit seinem Buch ›Effective Java Programming Language Guide‹, was seit Mai 2008 in der zweiten Auflage ist, ein Standardwerk für Java-Entwickler geschaffen. Bloch hat aus seiner Erfahrung an der Entwicklung der Java-Standard-Bibliothek – etwa der Collection-API – 78 Programmier-Idiome abgeleitet, mit deren Hilfe Systemarchitekten klaren und korrekten Java-Code schreiben und bessere Schnittstellen entwerfen können. Das Seminar behandelt über die Java-Syntax und allgemeine Bibliotheken hinaus- gehende Tipps und Tricks und vertieft in weiteren Beispielen, wie sich die Sprachmittel von Java 5 (Java 6) optimal nutzen lassen. Ergänzt werden diese Themen durch den größeren Überbau der Entwurfsmuster und Anti-Pattern.
Zielgruppe
Software-EntwicklerKursvoraussetzungen
Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.Seminarinhalte
![[LOGO]](../../images/seminare/logos/java.png)
Einführung in Best-Practice Java
- Architektur, Design und Idiom
- Design-Patterns und Anti-Patterns
- Refactoring
- Aufspüren von Schwachstellen mit Tools
- Testen von Anwendungen
Lebenslauf der Objekte
- Design-Pattern Fabrik und Singleton
- Unbeabsichtigtes Template-Pattern
- Hängende Referenzen, Memory Leaks, Heap-Analyzer
- Finalizierung
- Starke und schwache Referenzen: Weak-, Soft- und Phantom-Referenzen
- Builder Pattern
Allgemeines zu Methoden und Methoden aller Objekte
- Argument-Validierungen
- Kopien anlegen
- Signaturen und das Problem der späten Änderung
- Überladene Methoden
- Varargs aus Java 5
- Das Null-Objekt-Pattern
- JavaDoc zur Dokumentation
-equals(),hashCode()undtoString()ausjava.lang.Object
-clone()und Copy-Konstruktor
-Comparable/Comparator
Klassen und Schnittstellen
- Die Sichtbarkeit im Griff haben
- Immutable Klassen
- Kaufen statt Erben
- Vererbung bewusst steuern oder unbewusst vermeiden
- Schnittstellen oder abstrakte Klassen?
- Markierungsschnittstellen (Marker-Interfaces)
- Innere Klassen, statische Mitgliedsklassen
- Funktionszeiger objektorientiert realisieren: Das Befehlsmuster (Command Pattern)
Aufzählungen typsicher implementieren
-enumund Methoden
-EnumSet
-EnumMap
- Aufzählungen ohne Java 5 typsicher modellieren
Allgemeine Programmierhinweise
- Sichtbarkeit lokaler Variablen minimieren
- Standard-Klassenbibliotheken kennen und dazu die bunte Open Source-Welt
- Genauigkeiten beifloat,double,BigDecimal
- Probleme vom Autoboxing vermeiden
- Strings und ihre Laufzeiteigenschaften
- Schnittstellenorientierte Programmierung
- Spezielle Reflection-Szenarien durch Schnittstellen abbilden
- Namenskonventionen
- Das Problem der nativen Methoden
- Optimierung, Performance-Messungen (Profiling), Tools
Ausnahmen (Exceptions)
- Ausnahmen oder Rückgabewerte?
- Wann geprüfte und ungeprüfte Ausnahmen?
- Die Exception-Hierarchie der Standard-Bibliotheken kennen und nutzen
- Der Einsatz vonError
- Ausnahmetypen bei Schichten-Architekturen
- Dokumentieren von Ausnahmen und vollständige Stack-Traces
- Zumcatch(Exception e) {}
- Assertions
- Zusicherungen mit Annotationen (JSR 308: Annotations on Java Types),@NotNull
Nebenläufigkeit mit Threads
- Was synchronisiert werden muss
- Nebenläufigkeit nicht behindern
-wait()/await()in Schleifen
- Der Thread-Scheduler und Thread-Prioritäten
- Nebenläufigkeit dokumentieren
- Thread-Gruppen
Serialisation
- Die SchnittstelleSerializable
- Versionierung
- Standard-Serialisierung und angepasste Serialisierung durchreadObject()/writeObject()
- Die Aufgabe vonreadResolve()
- Serialization Proxies
Generics
- Wiederholung zentraler Konzepte
- Generische Typen, Raw-Types, unchecked-Meldungen
- Listen mit Generics statt Arrays ohne Generics
- Bounded Wildcards
- Typsichere heterogene Container
Schulungsunterlagen
Unterlagen (Kopien der Folien), Beispielprogramme, Zertifikat.
Eingesetze Seminar-Software
Als Laufzeitumgebung wird standardmäßig Java SE 6 von Sun zusammen mit der Entwicklungsumgebung Eclipse 3.5 eingesetzt (Paket ›Eclipse IDE for Java EE Developers‹). Auf Wunsch auch NetBeans 6 oder andere Entwicklungsumgebungen (IntelliJ IDEA, Oracle JDeveloper).
Schlagwörter
Weiterführende Seminare
- Eclipse IDE
- Oberflächen mit Swing und JFC
- Datenbankanbindung über JDBC
- Java und XML
- JavaServer Pages (JSP) und Servlets
- Java Platform, Enterprise Edition (Java EE) 5
- Enterprise JavaBeans (EJB) 3 und Persistence API
- Spring-Framework
- OR-Mapping mit Hibernate und JPA
- Java ME: Programmierung mobiler Endgeräte
- Sun Certified Java Programmer (SCJP)
- Refactoring
- Design Patterns (Entwurfsmuster) in Java
![Zu einem Bookmark-Anbieter hinzufügen [Addthis]](../../images/bookmarks/addthis.png)
![Zu Google Bookmarks hinzufügen [Google Bookmarks]](../../images/bookmarks/google.png)
![Zu Yahoo! Bookmarks hinzufügen [Yahoo! Bookmarks]](../../images/bookmarks/yahoo.png)
![Zu Delicius hinzufügen [Delicius]](../../images/bookmarks/delicious.png)
![Zu Mister Wong hinzufügen [Mister Wong]](../../images/bookmarks/misterwong.png)