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

Software-Entwickler

Empfohlene Dauer

3 Tage, insgesamt 18 Zeitstunden

Inhalte

[LOGO]
  • 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() und toString() aus java.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; enum aus 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()

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

[Addthis] [Google Bookmarks] [Yahoo! Bookmarks] [Delicius] [Mister Wong]

[Nach oben]