20 Jahre Erfahrung FreeCall 0800 tutegos

Effektiv Java programmieren

[LOGO]

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-Entwickelnde 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 aktuellen Sprachmittel optimal nutzen lassen. Ergänzt werden diese Themen durch den größeren Überbau der Entwurfsmuster und Anti-Pattern.

Inhalte des Seminars

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
  • Variable Argumentlisten (Varargs)
  • Das Null-Objekt-Pattern
  • Javadoc zur Dokumentation
  • 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)
  • Geschachtelte Klassen
  • Funktionszeiger objektorientiert realisieren: Das Befehlsmuster (Command Pattern)

Aufzählungen typsicher implementieren

  • enum und Methoden
  • EnumSet
  • EnumMap

Allgemeine Programmierhinweise

  • Sichtbarkeit lokaler Variablen minimieren
  • Standard-Klassenbibliotheken kennen und dazu die bunte Open Source-Welt
  • Genauigkeiten bei float, 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 von Error
  • Ausnahmetypen bei Schichten-Architekturen
  • Dokumentieren von Ausnahmen und vollständige Stack-Traces
  • Was ist mit 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
  • Serialization Proxies

Generics

  • Wiederholung zentraler Konzepte
  • Generische Typen, Raw-Types, unchecked-Meldungen
  • Listen mit Generics statt Arrays ohne Generics
  • Bounded Wildcards
  • Typsichere heterogene Container

Termine / Kontakt

Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.

Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.

Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).

Die Fakten

  • Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
  • Zielgruppe: Software-Entwickler
  • Vorkenntnisse: Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹ oder vergleichbare Kenntnisse.
  • Schulungsunterlagen: Unterlagen (Kopien der Folien), Beispielprogramme, Zertifikat
  • Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8.

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), EJB und JPA, Spring-Framework, OR-Mapping mit Hibernate und JPA, Oracle Certified Professional Java Programmer (OCPJP), Refactoring, Design Pattern (Entwurfsmuster) in Java

Verweise

Alle Kategorien

Was Teilnehmer sagen