menu Navigation
Haben Sie Fragen?
Monika Günther
Kundenbetreuung
+49 (40) 414250-26

Effective JavaEffective Java

Termine

Zur Zeit sind leider keine aktuellen Termine vorhanden.

Alle Preise zzgl. MwSt

Seminarbeschreibung


Was ist der Unterschied zwischen dem Kennen und Können einer Programmiersprache? Eine neue Spracheigenschaft zu erlernen (das Kennen) ist relativ einfach, aber zu verstehen, wie man die Eigenschaft effektiv benutzt (das Können), ist ganz etwas anderes.
In diesem Seminar lernen die Teilnehmer die Programmierung in Java und nicht nur die Programmiersprache Java. Es wird vorausgesetzt, dass die Teilnehmer bereits erste Berührung mit Java hatten und ein grundlegendes Verständnis der Sprache mitbringen, so wie es durch das Studium eines Java-Tutorials erworben werden kann.
Das Seminar baut auf diese Grundkenntnisse auf, steigt tiefer in scheinbar alltägliche Sprachmittel ein und arbeitet sich zu weniger geläufigen, fortgeschritteneren Java-Spracheigenschaften vor. Es werden einerseits Themen wie clone und equals behandelt, die zum täglichen Brot der Java-Programmierung gehören, aber regelmäßig falsch verstanden und inkorrekt implementiert werden. Darüber hinaus sehen wir uns weniger alltägliche Sprachmittel wie Inner Classes, Reflection, und Weak References an, die man nicht täglich braucht, die aber den Horizont erweitern und dem Entwickler Möglichkeiten für die Problemlösung eröffnen, die ohne die Beschäftigung mit den betreffenden Sprachmittel gar nicht in Erwägung gezogen würden.
Dieses Seminar richtet sich an professionelle Programmierer, die Java tiefgehender erforschen möchten und über das Grundwissen hinausgehen möchten. Ziel des Seminars ist die Vermittlung von fundiertem Praxiswissen für die industrielle Java-Programmierung.


Angelika Langer Ihre Trainerin
Angelika Langer arbeitet als unabhängige Trainerin mit eigenem Kursprogramm basierend auf ca. 25 Jahren Erfahrung in der Softwareentwicklung, u.a. in C++ und Java. Sie ist Autorin zahlreicher Fachveröffentlichungen zum Thema Java und C++, darunter die Kolumne "Effective Java" im JavaMagazin, das Online Java Generics FAQ, sowie das Buch "Standard C++ IOStreams". Sie ist Referentin auf internationalen Fachkonferenzen im In- und Ausland. Aktuell liegt ihr Hauptinteresse im Training, Coaching und Mentoring im Bereich der objektorientierten Softwareentwicklung mit C++ und Java. Ihre Kernkompetenzen liegen in der fortgeschrittenen C++- und Java-Programmierung.

Inhalt

Construction and Finalization

  • Construction & Initialization
  • Finalization & Automatic Resource Management

Object Infrastructur
  • Copying Objects (Implementing clone())
  • Object Equality (Implementing equals())
  • Hashing Objects (Implementing hashCode())
  • Comparing Objects (Implementing compareTo())

Immutability
  • final vs. Constness vs. Immutability
  • The Dual Class Idiom

Function Redefinition & Overload Resolution
  • Function Redefinition (final + polymorphism)
  • Principles of Method Overload Resolution
  • Pitfall: Mixing Overloading and Overriding

Inner Classes
  • Nested, Member, Local and Anonymous Classes
  • Idioms for Use of Inner Classes

Generic and Parameterized Types and Methods
  • Syntax and Byte Code Representation (Type Erasure)
  • Wildcards
  • Raw Types and Compatibility

Lambdas & Streams
  • An Overview of Lambdas & Method References
  • An Overview of the Stream API

Reflection & Dynamic Proxies
  • An Overview of the Reflecion API
  • Dynamic Proxies

Annotations und Compiler Plugins
  • Declaring Annotation Types
  • Annotating Program Elements
  • Processing Annotations Using Reflection
  • Compiler-Plugins for Annotation Processing

Soft & Weak References
  • Using Weak References to Avoid Unwanted References
  • Using Soft References to Implement Caches

Enumeration Types
  • Syntax and Byte Code Representation
  • Pitfalls With Static Initialization of Enums

Minor "New" Language Features
    Java 5
  • Autoboxing and Related Pitfalls
  • Variable Argument Lists and Related Pitfalls
    Java 7
  • Improved Type Inference aka "Diamond Operator"
  • Varargs Warnings
  • Improved re-throw & Multi-Catch
  • Automatic Resource Management
  • Strings in Switch
  • Numeric Literals
    Java 8
  • Default Interface Methods
  • Static Interface Methods

Serialization
  • Default Serialization
  • Custom Serialization
  • Object Stream Support

Class Loading
  • Class Loader Basics
  • Custom Class Loader

Voraussetzungen

Keine

Inklusive

  • Mittagessen, Kaffee, Tee, Kaltgetränke, Gebäck und frisches Obst.

Wir kommen zu Ihnen!

Sie können dieses Seminar auch als firmeninterne Schulung (Kundenseminar) buchen. In diesem Fall kommen unsere TrainerInnen entweder zu Ihnen ins Haus oder das Seminar findet in unseren Räumen bzw. einem externen Seminarhaus statt.

Kontaktieren Sie uns und vereinbaren Sie einen individuellen Termin!