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]
  • 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 oder andere Entwicklungsumgebungen.

Schlagwörter