Seminarziel
Die Java-Kompaktschulung fasst die Inhalte aus Grundlagen- und Aufbaukurs gezielt zusammen.
Seminarinhalt
Java - Kompaktschulung
Einführung
- Zur Entstehung von Java, Java versus C#, C++
- Java Compiler, Bytecode
- Virtuelle Maschine (JVM), Java-Laufzeitumgebung
- ›Write Once, Run Anywhere‹ (WORA) in der Praxis
- Säulen Java SE, Java EE, Java ME
- Java 6, Java Development Kit (JDK)
- Eclipse und NetBeans als Entwicklungsumgebung
- Das erste Programm
Grundlegende Spracheigenschaften
- Syntax, Schlüsselworte
- main()-Funktion, Programmausführung
- Bildschirmausgabe
- Anweisungen, Methoden
- JavaDoc und API-Dokumentation
- Variablen und Datentypen
- Ausdrücke und Operatoren
- Bedingte Anweisungen/Fallunterscheidungen
- Schleifen
- Methoden, Parameter, Argumente
Klassen und Objekte nutzen
- Objekte mit new erzeugen
- Mit Referenzen arbeiten, Identität und Gleichheit
- Der Garbage-Collector (GC)
- Felder und die Klasse Arrays
- Erweiteres for (foreach)
- Variable Argumentlisten (Varargs)
- Eigene Pakete schreiben, Klassen importieren, Default-Paket
Zeichenkettenverarbeitung
- Klasse Character
- Die Klassen String, StringBuffer, StringBuilder [PDF]
- Konvertierungen
- Reguläre Ausdrücke und die Klasse Pattern
- Zerlegen von Zeichenfolgen mit Scanner, StringTokenizer
Die Java-API
- Übersicht über die Pakete der API
- Wrapper Klassen (Integer, Character, ...)
- Autoboxing
- Externe Programme aufrufen
- Zeitmessungen
- Klassenlader, Klassenpfad und externe Bibliotheken
Klassen, Attribute und Methoden deklarieren
- Elemente UML (Unified Modeling Language)
- Klassendeklarationen
- Attribute und Operationen
- Die this-Referenz
- Das Geheimnisprinzip und Sichtbarkeiten
- private, protected, public, paketsichtbar
- Statische Eigenschaften, static
- Konstanten
- Aufzählungen und enum
- Der Konstruktor
Wiederverwendung in der Objektorientierung
- Assoziationen
- Java Collection API, einfache Datenstrukturen (Liste, Menge)
- Generics am Beispiel von Datenstrukturen
- Vererbung mit extends
- Methoden überschreiben, finale Methoden, Annotationen
- Die „Über“-Klasse java.lang.Object
- Substitutionsprinzip, instanceof, dynamisches Binden
- Finale Klassen, abstrakte Klassen, Schnittstellen
- Zugriffsschutz
Ausnahmen/Exceptions
- Motivation für eine Ausnahmebehandlung
- Ausnahmen behandeln try, catch, finally
- Ausnahmen am Beispiel von Ein-/Ausgabe-Klassen Scanner, FileWriter
- Ausnahmen weiterleiten, throws
- Eigene Ausnahmen
- Checked Exceptions und Unchecked Excpetions, RuntimeException
- Fehler der JVM: Error
- Assertions
Fortgeschrittenes aus den Bibliotheken und Tools
- Threads
- Datum und Uhrzeit
- Swing, JFC und AWT
- Komponenten im Gui-Builder von NetBeans
- Java-Archive (jar)
Generics
- Einsatzgebiete von Generics
- Typparameter, generische Klassen und generische Methoden
- Wildcards
- Bounds
- Generics und Vererbung, Vergleich zu Arrays, Kovarianz, Invarianz
- Raw Types, Typlöschung
- Generics im Laufzeitsystem, Reflection-API, Run-time Type Tokens
Internationalisierung und Lokalisierung
- Locale, korrekte Sortierung
- Internationalisierung mit ResourceBundle
- Formatieren von Zeichenketten, Datum, Zahlen
Dynamische Datenstrukturen
- Arrays-Methoden
- Listen (ArrayList, LinkedList)
- Mengen (HashSet, TreeSet)
- Assoziativspeicher ((Weak)HashMap, Properties)
- Queues, blockierende Queues
- Die Utility-Klasse Collections
- Sonstige Klassen im java.util-Paket
- Strong References und Weak References
Paralleles Programmieren mit Threads
- Die Klasse Thread und das Interface Runnable
- Das Concurrent-Paket
- Exectuor, Thread-Pools
- Callable und Future
- Synchronisation über kritische Abschnitte, Locks
- Koordination (Warten und Benachrichtigen)
- Thread-Gruppen
- Algorithmen und Synchronisation
Datei Ein/-Ausgabe
- Dateien, File, Verzeichnisse listen, Dateiattribute
- Datenströme (XXXStream, Reader, Writer)
- Kompression
- Verschlüsselte Datenströme
- Serialisierung
- Benutzereinstellungen sichern
Einfache grafische Oberflächen
- Ereignisse
- AWT und Swing
- Container und Komponenten
- Ereignisse der Komponenten
- Geometrie und Layoutmanager
- Dialoge
- Swing und SWT/JFace
Netzwerkzugriffe in Java
- Das Paket java.net [PDF]
- URLs und Verbindungen zum Netz
- URL-Verbindungen
- Sockets
- Netzwerk-Clients
- Ausblick auf NIO (und NIO.2)
- Server implementieren
- JavaServer Pages (JSP) und Servlets
Entfernte Methodenaufrufe und Web-Services
- Java Remote Method Invocation (RMI)
- Lokale und entfernte (remote) Objekte
- Namensdienst/Registry
- Dienstprogramm rmiregistry
- Übergabe-Semantik
- Web-Services
Datenbankzugriff mit JDBC
- Relationale Datenbanken und SQL
- Datenbanktreiber
- Eine Beispielverbindung, SQL-Anweisungen ausführen
- DriverManager, ResultSet
- Transaktionen
- DataSource
- Das DAO-Pattern
Reflection und Annotationen
- Meta-Programmierung
- Class-Objekte
- Eigenschafen zur Laufzeit auslesen
- Methoden aufrufen
- JavaBeans-Konvention
- Eigene Annotationen deklarieren
- Annotationen auswerten
XML-Verarbeitung
- Begriffswelt von XML: Elemente, Tags, Schema, Validierung
- Java API für XML, JAXP
- Lesen und schreiben mit StAX
- JDOM, DOM-Baum aufbauen und füllen
- Objekt-XML-Mapping mit JAXB
Einführung in die Enterprise Edition
- Bestandteile der Java EE 5
- Java EE Application-Server
- Namen-/Verzeichnisdienst JNDI
- Enterprise Java Beans (EJB)
- Java Persistence API (JPA)
- Java Message Service (JMS)
Werkzeuge
- Testen mit JUnit
- Build-Management mit Ant
- JMX und JConsole, visualvm
- Logging, Log-Auswertung
- Tools zum Einhängen von nativen Bibliotheken, JNI-Wrapper
Zielgruppe
Dieses Seminar ist für Software-Entwickler konzipiert.
Voraussetzungen
Kenntnis einer strukturierten Programmiersprache (Variablen, Schleifen,…), Grundverständnis der objektorientierten Idee.