Sie befinden sich hier: Home » Seminare » Java » JAVAEFF
Effektiv Java programmieren
Kursziele
Joshua Bloch hat mit seinem Buch ›Effective Java Programming Language Guide‹ ein Standardwerk für Java-Entwickler geschaffen. Bloch hat aus seiner Erfahrung an der Entwicklung der Java-Standard-Bibliothek – etwa der Collection-API – über 50 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 1.4 und Java 5 (Java 6) optimal nutzen lassen.
Zielgruppe | Empfohlene Dauer | |
| Software-Entwickler | 3 Tage, insgesamt 18 Zeitstunden |
Inhalte
![[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
- Methoden aller Objekte
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
- Aufzählungen typsicher implementieren;
enumaus Java 5
- Funktionszeiger objektorientiert realisieren: Das Befehlsmuster (Command Pattern)
- Methoden
- 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
- Allgemeine Programmierhinweise
- Sichtbarkeit lokaler Variablen minimieren
- Standard-Klassenbibliotheken kennen und dazu die bunte Open Source-Welt
- Genauigkeiten bei
float,double,BigDecimal
- 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 von
Error
- Ausnahmetypen bei Schichten-Architekturen
- Dokumentieren von Ausnahmen und vollständige Stack-Traces
- Zum
catch(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 Schnittstelle
Serializable
- Versionierung
- Standard-Serialisierung und angepasste Serialisierung durch
readObject()/writeObject()
- Die Aufgabe von
readResolve()
- Die Schnittstelle
Voraussetzungen
Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.
Seminarunterlagen
Unterlagen (Kopien der Folien), Zertifikat.
Software
Als Laufzeitumgebung wird standardmäßig Java SE 6 von Sun zusammen mit der Entwicklungsumgebung Eclipse 3.4 eingesetzt (Paket ›Eclipse IDE for Java EE Developers‹). Auf Wunsch auch NetBeans 6 oder andere Entwicklungsumgebungen.
Schlagwörter |