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.6 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)