Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Liebe Leser! Inhaltsverzeichnis   Vorwort
  Organisation der Kapitel
1   Neues in Java 9
1.1   Klassenlader (Class Loader) und Modul-/Klassenpfad
1.1.1   Klassenladen auf Abruf 1.1.2   Klassenlader bei der Arbeit zusehen 1.1.3   JMOD-Dateien und JAR-Dateien 1.1.4   Woher die kleinen Klassen kommen: die Suchorte und spezielle Klassenlader 1.1.5   Setzen des Modulpfades
1.2   Module entwickeln und einbinden
1.2.1   Wer sieht wen 1.2.2   Plattform-Module und JMOD-Beispiel 1.2.3   Verbotene Plattformeigenschaften nutzen, --add-exports 1.2.4   Plattformmodule einbinden, --add-modules und --add-opens 1.2.5   Projektabhängigkeiten in Eclipse 1.2.6   Benannte Module und module-info.java 1.2.7   Automatische Module 1.2.8   Unbenanntes Modul 1.2.9   Lesbarkeit und Zugreifbarkeit 1.2.10   Modul-Migration
1.3   Sprachänderungen in Java 9 1.4   Bibliotheksänderungen in Java 9 1.5   Änderungen in den Werkzeugen von Java 9 1.6   JDK 9-HotSpot-JVM-Änderungen 1.7   Zum Weiterlesen
2   Die Klassenbibliothek
2.1   Die Java-Klassenphilosophie
2.1.1   Modul, Paket, Typ 2.1.2   Übersicht über die Pakete der Standardbibliothek
2.2   Die Utility-Klassen System und Properties
2.2.1   Systemeigenschaften der Java-Umgebung 2.2.2   Zeilenumbruchzeichen, line.separator 2.2.3   Eigene Properties von der Konsole aus setzen * 2.2.4   Umgebungsvariablen des Betriebssystems * 2.2.5   Einfache Zeitmessung und Profiling *
2.3   Versionskennungen auslesen, aufbauen, parsen und vergleichen 2.4   Einfache Benutzereingaben
2.4.1   Grafischer Eingabedialog über JOptionPane 2.4.2   Geschützte Passwort-Eingaben mit der Klasse Console *
2.5   Benutzereinstellungen *
2.5.1   Benutzereinstellungen mit der Preferences-API 2.5.2   Einträge einfügen, auslesen und löschen 2.5.3   Auslesen der Daten und Schreiben in einem anderen Format 2.5.4   Auf Ereignisse horchen 2.5.5   Zugriff auf die gesamte Windows-Registry
2.6   Maven: Build-Management und Abhängigkeiten auflösen
2.6.1   Beispielprojekt in Eclipse mit Maven 2.6.2   Properties hinzunehmen 2.6.3   Dependency hinzunehmen 2.6.4   Lokales- und Remote-Repository 2.6.5   Lebenszylus, Phasen und Maven-Plugins 2.6.6   Archetypes
2.7   Zum Weiterlesen
3   Fortgeschrittene String-Verarbeitung
3.1   Erweiterte Zeicheneigenschaften
3.1.1   isXXX(….)-Methoden 3.1.2   Unicode-Blöcke 3.1.3   Unicode-Skripte
3.2   Reguläre Ausdrücke
3.2.1   Pattern.matches(…) bzw. String#matches(…) 3.2.2   Die Klassen Pattern und Matcher 3.2.3   Finden und nicht matchen 3.2.4   Gruppen 3.2.5   Gierige und nicht gierige Operatoren * 3.2.6   Mit MatchResult alle Ergebnisse einsammeln * 3.2.7   Suchen und Ersetzen mit Mustern 3.2.8   Hangman Version 2
3.3   Zerlegen von Zeichenketten
3.3.1   Zerlegen von Zeichensequenzen über String oder Pattern 3.3.2   Mehr vom Scanner 3.3.3   Die Klasse StringTokenizer * 3.3.4   BreakIterator als Zeichen-, Wort-, Zeilen- und Satztrenner * 3.3.5   StreamTokenizer *
3.4   Zeichenkodierungen, XML/HTML-Entities, Base64 *
3.4.1   Unicode und 8-Bit-Abbildungen/Unicode Encoding 3.4.2   Kodierungen über die Klasse String vornehmen 3.4.3   Das Paket java.nio.charset und der Typ Charset 3.4.4   Konvertieren mit OutputStreamWriter/InputStreamReader-Klassen 3.4.5   XML/HTML-Entities ausmaskieren 3.4.6   Base64-Kodierung
3.5   Ausgaben formatieren
3.5.1   Die Formatter-Klasse * 3.5.2   Formatieren mit Masken * 3.5.3   Format-Klassen 3.5.4   Zahlen, Prozente und Währungen mit NumberFormat und DecimalFormat formatieren * 3.5.5   MessageFormat und Pluralbildung mit ChoiceFormat
3.6   Sprachabhängiges Vergleichen und Normalisierung *
3.6.1   Die Klasse Collator 3.6.2   Effiziente interne Speicherung für die Sortierung 3.6.3   Normalisierung
3.7   Phonetische Vergleiche * 3.8   Zum Weiterlesen
4   Datenstrukturen und Algorithmen
4.1   Datenstrukturen und die Collection-API
4.1.1   Designprinzip mit Schnittstellen, abstrakten und konkreten Klassen 4.1.2   Die Basisschnittstellen Collection und Map 4.1.3   Die Utility-Klassen Collections und Arrays 4.1.4   Das erste Programm mit Container-Klassen 4.1.5   Die Schnittstelle Collection und Kernkonzepte 4.1.6   Schnittstellen, die Collection erweitern, und Map 4.1.7   Konkrete Container-Klassen 4.1.8   Generische Datentypen in der Collection-API 4.1.9   Die Schnittstelle Iterable und das erweiterte for
4.2   Listen
4.2.1   Erstes Listen-Beispiel 4.2.2   Auswahlkriterium ArrayList oder LinkedList 4.2.3   Die Schnittstelle List 4.2.4   ArrayList 4.2.5   LinkedList 4.2.6   Der Array-Adapter Arrays.asList(…) 4.2.7   ListIterator * 4.2.8   toArray(…) von Collection verstehen – die Gefahr einer Falle erkennen 4.2.9   Primitive Elemente in Datenstrukturen verwalten
4.3   Mengen (Sets)
4.3.1   Ein erstes Mengen-Beispiel 4.3.2   Methoden der Schnittstelle Set 4.3.3   HashSet 4.3.4   TreeSet – die sortierte Menge 4.3.5   Die Schnittstellen NavigableSet und SortedSet 4.3.6   LinkedHashSet
4.4   Queues (Schlangen) und Deques
4.4.1   Queue-Klassen 4.4.2   Deque-Klassen 4.4.3   Blockierende Queues und Prioritätswarteschlangen 4.4.4   PriorityQueue
4.5   Stack (Kellerspeicher, Stapel)
4.5.1   Die Methoden von java.util.Stack
4.6   Assoziative Speicher
4.6.1   Die Klassen HashMap und TreeMap 4.6.2   Einfügen und Abfragen des Assoziativspeichers 4.6.3   Über die Bedeutung von equals(…) und hashCode() bei Elementen 4.6.4   Eigene Objekte hashen 4.6.5   LinkedHashMap und LRU-Implementierungen 4.6.6   IdentityHashMap 4.6.7   Das Problem veränderter Elemente 4.6.8   Aufzählungen und Ansichten des Assoziativspeichers 4.6.9   Die Arbeitsweise einer Hash-Tabelle * 4.6.10   Die Properties-Klasse
4.7   Immutable Datenstrukturen
4.7.1   Nichtänderbare Datenstrukturen, immutable oder nur Lesen? 4.7.2   Null Object Pattern und leere Sammlungen/Iteratoren zurückgeben 4.7.3   Immutable Datenstrukturen mit einem Element: Singletons 4.7.4   Collections.unmodifiableXXX(…) 4.7.5   Statische ofXXX(…)-Methoden zum Aufbau unveränderbarer Set-, List-, Map-Datenstrukturen
4.8   Mit einem Iterator durch die Daten wandern
4.8.1   Iterator-Schnittstelle 4.8.2   Der Iterator kann (eventuell auch) löschen 4.8.3   Operationen auf allen Elementen durchführen 4.8.4   Einen Zufallszahlen-Iterator schreiben 4.8.5   Iteratoren von Sammlungen, das erweiterte for und Iterable 4.8.6   Fail-Fast-Iterator und die ConcurrentModificationException 4.8.7   Die Schnittstelle Enumeration *
4.9   Algorithmen in Collections
4.9.1   Die Bedeutung von Ordnung mit Comparator und Comparable 4.9.2   Sortieren 4.9.3   Den größten und kleinsten Wert einer Collection finden 4.9.4   Echte typsichere Container 4.9.5   Mit der Halbierungssuche nach Elementen fahnden 4.9.6   Ersetzen, Kopieren, Füllen, Umdrehen, Rotieren * 4.9.7   Listen durchwürfeln * 4.9.8   Häufigkeit eines Elements * 4.9.9   nCopies(…) *
4.10   Datenstrukturen mit Änderungsmeldungen
4.10.1   Das Paket javafx.collections 4.10.2   Fabrikmethoden in FXCollections 4.10.3   Änderungen melden über InvalidationListener 4.10.4   Änderungen melden über XXXChangeListener 4.10.5   Change-Klassen 4.10.6   Weitere Hilfsmethoden einer ObservableList 4.10.7   Melden von Änderungen an Arrays 4.10.8   Transformierte FXCollections 4.10.9   Weitere statische Methoden in FXCollections
4.11   Stream-API
4.11.1   Stream erzeugen 4.11.2   Terminale Operationen 4.11.3   Intermediäre Operationen 4.11.4   Streams mit primitiven Werten 4.11.5   Stream-Beziehungen, AutoCloseable 4.11.6   Stream-Builder 4.11.7   Spliterator 4.11.8   Klasse StreamSupport
4.12   Spezielle threadsichere Datenstrukturen
4.12.1   Zu Beginn nur synchronisierte Datenstrukturen in Java 1.0 4.12.2   Nichtsynchronisierte Datenstrukturen in der Standard-Collection-API 4.12.3   Nebenläufiger Assoziativspeicher und die Schnittstelle ConcurrentMap 4.12.4   ConcurrentLinkedQueue 4.12.5   CopyOnWriteArrayList und CopyOnWriteArraySet 4.12.6   Wrapper zur Synchronisation 4.12.7   Blockierende Warteschlangen 4.12.8   ArrayBlockingQueue und LinkedBlockingQueue 4.12.9   PriorityBlockingQueue 4.12.10   Transfer-Warteschlangen – TransferQueue und LinkedTransferQueue
4.13   Google Guava (Google Collections Library)
4.13.1   Beispiel Multi-Set und Multi-Map 4.13.2   Datenstrukturen aus Guava 4.13.3   Utility-Klassen von Guava 4.13.4   Prädikate 4.13.5   Transformationen
4.14   Die Klasse BitSet für Bitmengen *
4.14.1   Ein BitSet anlegen 4.14.2   BitSet füllen und Zustände erfragen 4.14.3   Mengenorientierte Operationen 4.14.4   Weitere Methoden von BitSet 4.14.5   Primzahlen in einem BitSet verwalten
4.15   Zum Weiterlesen
5   Threads und nebenläufige Programmierung
5.1   Threads erzeugen
5.1.1   Threads über die Schnittstelle Runnable implementieren 5.1.2   Thread mit Runnable starten 5.1.3   Die Klasse Thread erweitern
5.2   Thread-Eigenschaften und Zustände
5.2.1   Der Name eines Threads 5.2.2   Wer bin ich? 5.2.3   Die Zustände eines Threads * 5.2.4   Schläfer gesucht 5.2.5   Mit yield() und onSpinWait() auf Rechenzeit verzichten 5.2.6   Der Thread als Dämon 5.2.7   Freiheit für den Thread – das Ende 5.2.8   Einen Thread höflich mit Interrupt beenden 5.2.9   UncaughtExceptionHandler für unbehandelte Ausnahmen 5.2.10   Der stop() von außen und die Rettung mit ThreadDeath * 5.2.11   Ein Rendezvous mit join(…) * 5.2.12   Arbeit niederlegen und wieder aufnehmen * 5.2.13   Priorität *
5.3   Der Ausführer (Executor) kommt
5.3.1   Die Schnittstelle Executor 5.3.2   Glücklich in der Gruppe – die Thread-Pools 5.3.3   Threads mit Rückgabe über Callable 5.3.4   Mehrere Callable-Objekte abarbeiten 5.3.5   ScheduledExecutorService für wiederholende Ausgaben und Zeitsteuerungen nutzen 5.3.6   Asynchrones Programmieren mit CompletableFuture (CompletionStage)
5.4   Synchronisation über kritische Abschnitte
5.4.1   Gemeinsam genutzte Daten 5.4.2   Probleme beim gemeinsamen Zugriff und kritische Abschnitte 5.4.3   Punkte nebenläufig initialisieren 5.4.4   i++ sieht atomar aus, ist es aber nicht * 5.4.5   Kritische Abschnitte schützen 5.4.6   Kritische Abschnitte mit ReentrantLock schützen 5.4.7   Synchronisieren mit synchronized 5.4.8   Synchronized-Methoden der Klasse StringBuffer * 5.4.9   Mit synchronized synchronisierte Blöcke 5.4.10   Dann machen wir doch gleich alles synchronisiert! 5.4.11   Lock-Freigabe im Fall von Exceptions 5.4.12   Deadlocks 5.4.13   Mit synchronized nachträglich synchronisieren * 5.4.14   Monitore sind reentrant – gut für die Geschwindigkeit * 5.4.15   Synchronisierte Methodenaufrufe zusammenfassen *
5.5   Synchronisation über Warten und Benachrichtigen
5.5.1   Die Schnittstelle Condition 5.5.2   It’s Disco-Time * 5.5.3   Warten mit wait(…) und Aufwecken mit notify()/notifyAll() * 5.5.4   Falls der Lock fehlt – IllegalMonitorStateException *
5.6   Datensynchronisation durch besondere Concurrency-Klassen *
5.6.1   Semaphor 5.6.2   Barrier und Austausch 5.6.3   Stop-and-go mit Exchanger
5.7   Atomare Operationen und frische Werte mit volatile *
5.7.1   Der Modifizierer volatile bei Objekt-/Klassenvariablen 5.7.2   Das Paket java.util.concurrent.atomic
5.8   Teile und herrsche mit Fork und Join *
5.8.1   Algorithmendesign per »teile und herrsche« 5.8.2   Nebenläufiges Lösen von D&C-Algorithmen 5.8.3   Fork und Join
5.9   Mit dem Thread verbundene Variablen *
5.9.1   ThreadLocal 5.9.2   InheritableThreadLocal 5.9.3   ThreadLocalRandom als schneller nebenläufiger Zufallszahlengenerator 5.9.4   ThreadLocal bei der Performance-Optimierung
5.10   Threads in einer Thread-Gruppe *
5.10.1   Aktive Threads in der Umgebung 5.10.2   Etwas über die aktuelle Thread-Gruppe herausfinden 5.10.3   Threads in einer Thread-Gruppe anlegen 5.10.4   Methoden von Thread und ThreadGroup im Vergleich
5.11   Reaktive Programmierung und die Flow-API * 5.12   Zeitgesteuerte Abläufe
5.12.1   Die Typen Timer und TimerTask
5.13   Ausführen externer Programme, Starten von Prozessen *
5.13.1   ProcessBuilder und Prozesskontrolle mit Process 5.13.2   ProcessHandle und Prozess-IDs 5.13.3   Einen Browser, E-Mail-Client oder Editor aufrufen
5.14   Den Stack-Trace erfragen *
5.14.1   StackTraceElement 5.14.2   printStackTrace(…) 5.14.3   StackTraceElement vom Thread erfragen 5.14.4   StackWalker und Stack-Walking API
5.15   Einen Abbruch der virtuellen Maschine erkennen
5.15.1   Shutdown-Hook 5.15.2   Signale
5.16   Zum Weiterlesen
6   Raum und Zeit
6.1   Sprachen der Länder
6.1.1   Sprachen in Regionen über Locale-Objekte
6.2   Internationalisierung und Lokalisierung
6.2.1   ResourceBundle-Objekte und Ressource-Dateien 6.2.2   Ressource-Dateien zur Lokalisierung 6.2.3   Die Klasse ResourceBundle 6.2.4   Ladestrategie für ResourceBundle-Objekte 6.2.5   Ladeprozess und Format anpassen *
6.3   Weltzeit * 6.4   Wichtige Datum-Klassen im Überblick
6.4.1   Der 1.1.1970 6.4.2   System.currentTimeMillis() 6.4.3   Einfache Zeitumrechnungen durch TimeUnit
6.5   Die Klasse Date
6.5.1   Objekte erzeugen und Methoden nutzen 6.5.2   Date-Objekte sind nicht immutable
6.6   Date-Time-API
6.6.1   Menschenzeit und Maschinenzeit 6.6.2   Datumsklasse LocalDate 6.6.3   Ostertage * 6.6.4   Die Klasse YearMonth 6.6.5   Die Klasse MonthDay 6.6.6   Aufzählung DayOfWeek und Month 6.6.7   Klasse LocalTime 6.6.8   Klasse LocalDateTime 6.6.9   Klasse Year 6.6.10   Zeitzonen-Klassen ZoneId und ZoneOffset 6.6.11   Temporale Klassen mit Zeitzoneninformationen 6.6.12   Klassen Period und Duration 6.6.13   Klasse Instant 6.6.14   Parsen und Formatieren von temporalen Typen 6.6.15   Das Paket java.time.temporal * 6.6.16   Rock Around the Clock 6.6.17   Konvertierungen zwischen der klassischen API und der Date-Time-API
6.7   Calendar und GregorianCalendar
6.7.1   Die abstrakte Klasse Calendar 6.7.2   Calendar nach Date und Millisekunden fragen 6.7.3   Abfragen und Setzen von Datumselementen über Feldbezeichner 6.7.4   Kalender-Exemplare bauen über den Calendar.Builder 6.7.5   Wie viele Tage hat der Monat, oder wie viele Monate hat ein Jahr? * 6.7.6   Wann beginnt die Woche und wann die erste Woche im Jahr? * 6.7.7   Der gregorianische Kalender
6.8   Zeitzonen in Java *
6.8.1   Zeitzonen durch die Klasse TimeZone repräsentieren 6.8.2   SimpleTimeZone 6.8.3   Methoden von TimeZone
6.9   Formatieren und Parsen von Date-Objekten
6.9.1   Mit DateFormat und SimpleDateFormat formatieren 6.9.2   Parsen von Datumswerten
6.10   Die Default-Falle 6.11   Zum Weiterlesen
7   Dateien, Verzeichnisse und Dateizugriffe
7.1   Alte und neue Welt in java.io und java.nio
7.1.1   java.io-Paket mit File-Klasse 7.1.2   NIO.2 und java.nio-Paket 7.1.3   java.io.File oder java.nio.*?
7.2   Dateisysteme und Pfade
7.2.1   FileSystem und Path 7.2.2   Die Utility-Klasse Files 7.2.3   Dateien kopieren und verschieben 7.2.4   Dateiattribute * 7.2.5   Neue Dateien, Verzeichnisse, symbolische Verknüpfungen anlegen und löschen 7.2.6   MIME-Typen herausfinden * 7.2.7   Verzeichnislistings (DirectoryStream/Stream) und Filter * 7.2.8   Rekursives Ablaufen des Verzeichnisbaums * 7.2.9   Rekursiv nach Dateien/Ordnern suchen mit Files.find(…) * 7.2.10   FileSystem: Abstraktion eines Dateisystems * 7.2.11   Verzeichnisse im Dateisystem überwachen *
7.3   Datei- und Verzeichnisoperationen mit der Klasse File
7.3.1   Dateien und Verzeichnisse mit der Klasse File 7.3.2   Existiert das Verzeichnis oder die Datei, und ist es …? 7.3.3   Verzeichnis- und Dateieigenschaften/-attribute 7.3.4   Umbenennen und Verzeichnisse anlegen 7.3.5   Verzeichnisse auflisten und Dateien filtern 7.3.6   Dateien berühren, neue Dateien anlegen, temporäre Dateien 7.3.7   Dateien und Verzeichnisse löschen 7.3.8   Wurzelverzeichnis, Laufwerksnamen, Plattenspeicher * 7.3.9   URL-, URI- und Path-Objekte aus einem File-Objekt ableiten * 7.3.10   Mit Locking Dateien sperren * 7.3.11   Sicherheitsprüfung *
7.4   Dateien mit wahlfreiem Zugriff
7.4.1   Ein RandomAccessFile zum Lesen und Schreiben öffnen 7.4.2   Aus dem RandomAccessFile lesen 7.4.3   Schreiben mit RandomAccessFile 7.4.4   Die Länge des RandomAccessFile 7.4.5   Hin und her in der Datei
7.5   Wahlfreier Zugriff mit SeekableByteChannel und ByteBuffer *
7.5.1   SeekableByteChannel 7.5.2   ByteBuffer 7.5.3   Beispiel mit Path + SeekableByteChannel + ByteBuffer 7.5.4   FileChannel
7.6   Zum Weiterlesen
8   Datenströme
8.1   Basisklassen für die Ein-/Ausgabe
8.1.1   Die vier abstrakten Basisklassen 8.1.2   Die abstrakte Basisklasse OutputStream 8.1.3   Ein Datenschlucker * 8.1.4   Die abstrakte Basisklasse InputStream 8.1.5   Die abstrakte Basisklasse Writer 8.1.6   Die Schnittstelle Appendable * 8.1.7   Die abstrakte Basisklasse Reader 8.1.8   Die Schnittstellen Closeable, AutoCloseable und Flushable
8.2   Lesen aus Dateien und Schreiben in Dateien
8.2.1   Byteorientierte Datenströme über Files beziehen 8.2.2   Zeichenorientierte Datenströme über Files beziehen 8.2.3   Funktion von OpenOption bei den Files.newXXX(…)-Methoden 8.2.4   Ressourcen aus dem Modulpfad und aus JAR-Dateien laden
8.3   Übersicht über Ein-/Ausgabeklassen
8.3.1   Eingaben lesen 8.3.2   Ausgaben schreiben 8.3.3   Klassen gruppiert nach Ressourcen 8.3.4   Ströme mit SequenceInputStream zusammensetzen *
8.4   Formatierte Textausgaben
8.4.1   Die Klassen PrintWriter und PrintStream 8.4.2   System.out, System.err und System.in
8.5   Die FileXXX-Stromklassen
8.5.1   FileOutputStream und FileInputStream 8.5.2   Das FileDescriptor-Objekt * 8.5.3   Mit dem FileWriter Texte in Dateien schreiben 8.5.4   Zeichen mit der Klasse FileReader lesen
8.6   Schreiben und Lesen aus Strings und Byte-Feldern
8.6.1   Mit dem StringWriter ein String-Objekt füllen 8.6.2   CharArrayWriter 8.6.3   StringReader und CharArrayReader 8.6.4   Mit ByteArrayOutputStream in ein Byte-Feld schreiben 8.6.5   Mit ByteArrayInputStream aus einem Byte-Feld lesen
8.7   Datenströme filtern und verketten
8.7.1   Streams als Filter verketten (verschachteln) 8.7.2   Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream 8.7.3   Gepufferte Eingaben mit BufferedReader/BufferedInputStream 8.7.4   LineNumberReader zählt automatisch Zeilen mit * 8.7.5   Daten mit der Klasse PushbackReader zurücklegen * 8.7.6   DataOutputStream/DataInputStream * 8.7.7   Basisklassen für Filter * 8.7.8   Die Basisklasse FilterWriter * 8.7.9   Eingaben mit der Klasse FilterReader filtern *
8.8   Vermittler zwischen Byte-Streams und Unicode-Strömen
8.8.1   Datenkonvertierung durch den OutputStreamWriter 8.8.2   Automatische Konvertierungen mit dem InputStreamReader
8.9   Kommunikation zwischen Threads mit Pipes *
8.9.1   PipedOutputStream und PipedInputStream 8.9.2   PipedWriter und PipedReader
8.10   Prüfsummen
8.10.1   Die Schnittstelle Checksum 8.10.2   Die Klasse CRC32 8.10.3   Die Adler32-Klasse
8.11   Persistente Objekte und Serialisierung
8.11.1   Objekte mit der Standardserialisierung speichern und lesen 8.11.2   Zwei einfache Anwendungen der Serialisierung * 8.11.3   Die Schnittstelle Serializable 8.11.4   Nicht serialisierbare Attribute aussparen 8.11.5   Deserialisierung absichern mit einem ObjectInputFilter * 8.11.6   Das Abspeichern selbst in die Hand nehmen 8.11.7   Tiefe Objektkopien * 8.11.8   Versionenverwaltung und die SUID 8.11.9   Wie die ArrayList serialisiert * 8.11.10   Probleme mit der Serialisierung
8.12   Alternative Datenaustauschformate
8.12.1   Serialisieren in XML-Dateien 8.12.2   XML-Serialisierung von JavaBeans mit JavaBeans Persistence * 8.12.3   Die Open-Source-Bibliothek XStream * 8.12.4   Binäre Serialisierung mit Google Protocol Buffers *
8.13   Zum Weiterlesen
9   Dateiformate
9.1   Einfache Dateiformate für strukturierte Daten
9.1.1   Property-Dateien mit java.util.Properties lesen und schreiben 9.1.2   CSV-Dateien
9.2   Dokumentenformate
9.2.1   (X)HTML 9.2.2   PDF-Dokumente 9.2.3   Microsoft-Office-Dokumente 9.2.4   OASIS Open Document Format
9.3   Datenkompression *
9.3.1   Java-Unterstützung beim Komprimieren 9.3.2   Daten packen und entpacken 9.3.3   Datenströme komprimieren 9.3.4   ZIP-Archive 9.3.5   JAR-Archive
9.4   Bildformate 9.5   Audiodateien
9.5.1   Die Arbeit mit AudioSystem und Clip 9.5.2   AudioClip von JavaFX 9.5.3   MIDI-Dateien abspielen 9.5.4   ID-Tags aus MP3-Dateien
9.6   Zum Weiterlesen
10   Die eXtensible Markup Language (XML) und JSON
10.1   Auszeichnungssprachen
10.1.1   Die Standard Generalized Markup Language (SGML) 10.1.2   Extensible Markup Language (XML)
10.2   Eigenschaften von XML-Dokumenten
10.2.1   Elemente und Attribute 10.2.2   Beschreibungssprache für den Aufbau von XML-Dokumenten 10.2.3   Schema – die moderne Alternative zu DTD 10.2.4   Namensraum (Namespace) 10.2.5   XML-Applikationen *
10.3   Die Java-APIs für XML
10.3.1   Das Document Object Model (DOM) 10.3.2   Simple API for XML Parsing (SAX) 10.3.3   Pull-API StAX 10.3.4   Java Document Object Model (JDOM) 10.3.5   JAXP als Java-Schnittstelle zu XML 10.3.6   DOM-Bäume einlesen mit JAXP *
10.4   Java Architecture for XML Binding (JAXB)
10.4.1   Bean für JAXB aufbauen 10.4.2   Utility-Klasse JAXB 10.4.3   Ganze Objektgraphen schreiben und lesen 10.4.4   JAXBContext und Marshaller/Unmarshaller nutzen 10.4.5   Validierung 10.4.6   Weitere JAXB-Annotationen * 10.4.7   JAXB-Beans aus XML-Schema-Datei generieren
10.5   Serielle Verarbeitung mit StAX
10.5.1   Unterschiede der Verarbeitungsmodelle 10.5.2   XML-Dateien mit dem Cursor-Verfahren lesen 10.5.3   XML-Dateien mit dem Iterator-Verfahren verarbeiten * 10.5.4   Mit Filtern arbeiten * 10.5.5   XML-Dokumente schreiben
10.6   Serielle Verarbeitung von XML mit SAX *
10.6.1   Schnittstellen von SAX 10.6.2   SAX-Parser erzeugen 10.6.3   Operationen der Schnittstelle ContentHandler 10.6.4   ErrorHandler und EntityResolver
10.7   XML-Dateien mit JDOM verarbeiten
10.7.1   JDOM beziehen 10.7.2   Paketübersicht * 10.7.3   Die Document-Klasse 10.7.4   Eingaben aus der Datei lesen 10.7.5   Das Dokument im XML-Format ausgeben 10.7.6   Der Dokumenttyp * 10.7.7   Elemente 10.7.8   Zugriff auf Elementinhalte 10.7.9   Liste mit Unterelementen erfragen * 10.7.10   Neue Elemente einfügen und ändern 10.7.11   Attributinhalte lesen und ändern 10.7.12   XPath
10.8   Transformationen mit XSLT *
10.8.1   Templates und XPath als Kernelemente von XSLT 10.8.2   Umwandlung von XML-Dateien mit JDOM und JAXP
10.9   XML-Schema-Validierung *
10.9.1   SchemaFactory und Schema 10.9.2   Validator 10.9.3   Validierung unterschiedlicher Datenquellen durchführen
10.10   JSON-Serialisierung mit Jackson-Datenformat
10.10.1   JSON im Kontext von JavaScript 10.10.2   JSON mit JavaScript-Engine von Java 10.10.3   JSON-Verarbeitung mit der Java API for JSON Processing
10.11   Zum Weiterlesen
11   Netzwerkprogrammierung
11.1   Grundlegende Begriffe 11.2   URI und URL
11.2.1   Die Klasse URI 11.2.2   Die Klasse URL 11.2.3   Informationen über eine URL * 11.2.4   Der Zugriff auf die Daten über die Klasse URL
11.3   URL-Parameter kodieren 11.4   Die Klassen URLConnection und HttpURLConnection
11.4.1   Methoden und Anwendung von URLConnection 11.4.2   HttpURLConnection 11.4.3   Webseiten aufrufen, mit GET und POST Daten übergeben * 11.4.4   POST-Request absenden 11.4.5   Der Protokoll-Handler für JAR-Dateien 11.4.6   Basic Authentication und Proxy-Authentifizierung
11.5   Host- und IP-Adressen
11.5.1   Lebt der Rechner? 11.5.2   IP-Adresse des lokalen Hosts 11.5.3   Das Netz ist klasse * 11.5.4   NetworkInterface
11.6   Socket-Verbindungen
11.6.1   Das Netzwerk ist der Computer 11.6.2   Sockets 11.6.3   Eine Verbindung zum Server aufbauen 11.6.4   Sockets unter Spannung – die Ströme 11.6.5   Die Verbindung wieder abbauen 11.6.6   Zeitserver ansprechen 11.6.7   Informationen über den Socket * 11.6.8   Reine Verbindungsdaten über SocketAddress * 11.6.9   Die Serverseite mit ServerSocket vorbereiten 11.6.10   Ein Multiplikationsserver 11.6.11   Blockierendes Lesen
11.7   HTTP Client API in Java 9 11.8   Neue externe Netzwerkbibliotheken *
11.8.1   HttpComponents 11.8.2   Async Http Client 11.8.3   Apache Commons Net
11.9   Arbeitsweise eines Webservers *
11.9.1   Das Hypertext Transfer Protocol (HTTP) 11.9.2   Anfragen an den Server 11.9.3   Die Antworten vom Server 11.9.4   Webserver mit com.sun.net.httpserver.HttpServer
11.10   Verbindungen durch einen Proxy-Server *
11.10.1   System-Properties 11.10.2   Verbindungen durch die Proxy-API
11.11   Bidirektionale binäre Webkommunikation über WebSockets *
11.11.1   WebSocket-Standard 11.11.2   WebSocket-Implementierungen
11.12   Datagram-Sockets *
11.12.1   Die Klasse DatagramSocket 11.12.2   Datagramme und die Klasse DatagramPacket 11.12.3   Auf ein hereinkommendes Paket warten 11.12.4   Ein Paket zum Senden vorbereiten 11.12.5   Methoden der Klasse DatagramPacket 11.12.6   Das Paket senden
11.13   Tiefer liegende Netzwerkeigenschaften *
11.13.1   MAC-Adressen auslesen 11.13.2   Internet Control Message Protocol (ICMP)
11.14   Zum Weiterlesen
12   RESTful und SOAP-Web-Services
12.1   Web-Services 12.2   RESTful Web-Services
12.2.1   Aus Prinzip REST 12.2.2   Jersey
12.3   Daily Soap und das SOAP-Protokoll
12.3.1   Die technische Realisierung 12.3.2   Web-Service-APIs und Implementierungen 12.3.3   @WebService 12.3.4   Web-Service-Modul angeben 12.3.5   Einen Web-Service definieren 12.3.6   Web-Services veröffentlichen 12.3.7   Einen JAX-WS-Client implementieren
12.4   Zum Weiterlesen
13   Verteilte Programmierung mit RMI
13.1   Entfernte Objekte und Methoden
13.1.1   Stellvertreter helfen bei entfernten Methodenaufrufen 13.1.2   Standards für entfernte Objekte
13.2   Java Remote Method Invocation
13.2.1   Zusammenspiel von Server, Registry und Client 13.2.2   Wie die Stellvertreter die Daten übertragen 13.2.3   Probleme mit entfernten Methoden 13.2.4   Nutzen von RMI bei Middleware-Lösungen 13.2.5   Zentrale Klassen und Schnittstellen 13.2.6   Entfernte und lokale Objekte im Vergleich
13.3   Auf der Serverseite
13.3.1   Entfernte Schnittstelle deklarieren 13.3.2   Remote-Objekt-Implementierung 13.3.3   Stellvertreterobjekte 13.3.4   Der Namensdienst (Registry) 13.3.5   Remote-Objekt-Implementierung exportieren und beim Namensdienst anmelden 13.3.6   Einfaches Logging 13.3.7   Aufräumen mit dem DGC *
13.4   Auf der Client-Seite 13.5   Entfernte Objekte übergeben und laden
13.5.1   Klassen vom RMI-Klassenlader nachladen
13.6   Automatische Remote-Objekt-Aktivierung 13.7   Java Message Service (JMS) 13.8   Zum Weiterlesen
14   Typen, Reflection und Annotationen
14.1   Metadaten
14.1.1   Metadaten durch Javadoc-Tags
14.2   Die Klasse Class
14.2.1   An ein Class-Objekt kommen 14.2.2   Eine Class ist ein Type
14.3   Klassenlader
14.3.1   Die Klasse java.lang.ClassLoader 14.3.2   Hot Deployment mit dem URL-Classloader *
14.4   Metadaten der Typen mit dem Class-Objekt
14.4.1   Der Name des Typs 14.4.2   Was das Class-Objekt beschreibt * 14.4.3   instanceof mit Class-Objekten * 14.4.4   Oberklassen finden * 14.4.5   Implementierte Interfaces einer Klasse oder eines Interfaces * 14.4.6   Modifizierer und die Klasse Modifier * 14.4.7   Die Arbeit auf dem Feld *
14.5   Attribute, Methoden und Konstruktoren
14.5.1   Reflections – Gespür für die Attribute einer Klasse 14.5.2   Schnittstelle Member für Eigenschaften 14.5.3   Field-Klasse 14.5.4   Methoden einer Klasse erfragen 14.5.5   Properties einer Bean erfragen 14.5.6   Konstruktoren einer Klasse 14.5.7   Annotationen 14.5.8   Reflexionen über Module
14.6   Objekte erzeugen und manipulieren
14.6.1   Objekte erzeugen 14.6.2   Die Belegung der Variablen erfragen 14.6.3   Eine generische eigene toString()-Methode * 14.6.4   Variablen setzen 14.6.5   Bean-Zustände kopieren * 14.6.6   Private Attribute auslesen/ändern und der Typ AccessibleObject 14.6.7   Methoden aufrufen 14.6.8   Statische Methoden aufrufen 14.6.9   Dynamische Methodenaufrufe bei festen Methoden beschleunigen * 14.6.10   java.lang.reflect.Parameter
14.7   Schneller aufrufen mit MethodType und MethodHandle 14.8   Eigene Annotationstypen *
14.8.1   Annotationen zum Laden von Ressourcen 14.8.2   Neue Annotationen deklarieren 14.8.3   Annotationen mit genau einem Attribut 14.8.4   Element-Wert-Paare (Attribute) hinzufügen 14.8.5   Annotationsattribute vom Typ einer Aufzählung 14.8.6   Felder von Annotationsattributen 14.8.7   Vorbelegte Attribute 14.8.8   Annotieren von Annotationstypen 14.8.9   Deklarationen für unsere Ressourcen-Annotationen 14.8.10   Annotierte Elemente auslesen 14.8.11   Auf die Annotationsattribute zugreifen 14.8.12   Komplettbeispiel zum Initialisieren von Ressourcen 14.8.13   Mögliche Nachteile von Annotationen
14.9   Zum Weiterlesen
15   Logging und Monitoring
15.1   Logging mit Java
15.1.1   Logging-APIs 15.1.2   Logging mit java.util.logging 15.1.3   Die Simple Logging Facade (SLF4J) 15.1.4   Logging mit log4j 2 * 15.1.5   Aktuelle Entwicklungen der Java-Logging-APIs 15.1.6   System-Logging *
15.2   Systemzustände überwachen 15.3   MBean-Typen, MBean-Server und weitere Begriffe
15.3.1   MXBeans des Systems
15.4   Geschwätzige Programme und JConsole
15.4.1   JConsole
15.5   Der MBeanServer 15.6   Eine eigene Standard-MBean
15.6.1   Management-Schnittstelle 15.6.2   Implementierung der Managed Ressource 15.6.3   Anmeldung beim Server 15.6.4   Eine eigene Bean in JConsole einbringen
15.7   Zum Weiterlesen
16   Datenbankmanagement mit JDBC
16.1   Relationale Datenbanken und Datenbankmanagementsysteme
16.1.1   Das relationale Modell 16.1.2   Datenbanken und Tools 16.1.3   HSQLDB 16.1.4   Weitere Datenbanken * 16.1.5   Eclipse Data Tools Platform (DTP) zum Durchschauen von Datenbanken
16.2   JDBC und Datenbanktreiber
16.2.1   JDBC-Versionen *
16.3   Eine Beispielabfrage
16.3.1   Schritte zur Datenbankabfrage 16.3.2   Ein Client für die HSQLDB-Datenbank
16.4   Mit Java an eine Datenbank andocken
16.4.1   Der Treiber-Manager * 16.4.2   Den Treiber laden 16.4.3   Eine Aufzählung aller Treiber * 16.4.4   Log-Informationen * 16.4.5   Verbindung zur Datenbank auf- und abbauen
16.5   Datenbankabfragen
16.5.1   Abfragen über das Statement-Objekt 16.5.2   Ergebnisse einer Abfrage in ResultSet 16.5.3   Java und SQL-Datentypen 16.5.4   Date, Time und Timestamp 16.5.5   Unicode in der Spalte korrekt auslesen 16.5.6   Eine SQL-NULL und wasNull() bei ResultSet 16.5.7   Wie viele Zeilen hat ein ResultSet? *
16.6   Elemente einer Datenbank ändern
16.6.1   Einzelne INSERT-, UPDATE- oder DELETE-Anweisungen senden 16.6.2   Aktualisierbares ResultSet 16.6.3   Batch-Updates
16.7   Die Ausnahmen bei JDBC, SQLException und Unterklassen
16.7.1   JDBC-Fehlerbasisklasse SQLException 16.7.2   SQLWarning
16.8   ResultSet und RowSet *
16.8.1   Die Schnittstelle RowSet 16.8.2   Implementierungen von RowSet 16.8.3   Der Typ CachedRowSet 16.8.4   Der Typ WebRowSet
16.9   Vorbereitete Anweisungen (Prepared Statements)
16.9.1   PreparedStatement-Objekte vorbereiten 16.9.2   Werte für die PreparedStatement-Platzhalter
16.10   Transaktionen 16.11   Vorbereitete Datenbankverbindungen
16.11.1   DataSource 16.11.2   Gepoolte Datenbankverbindungen
16.12   Zum Weiterlesen
17   Grafische Oberflächen mit Swing
17.1   AWT, JavaFoundation Classes und Swing
17.1.1   Das Abstract Window Toolkit (AWT) 17.1.2   Java Foundation Classes (JFC) 17.1.3   Was Swing von AWT-Komponenten unterscheidet
17.2   Mit NetBeans zur ersten Swing-Oberfläche
17.2.1   Projekt anlegen 17.2.2   Eine GUI-Klasse hinzufügen 17.2.3   Programm starten 17.2.4   Grafische Oberfläche aufbauen 17.2.5   Swing-Komponenten-Klassen 17.2.6   Funktionalität geben
17.3   Aller Swing-Anfang – Fenster zur Welt
17.3.1   Eine Uhr, bei der die Zeit nie vergeht 17.3.2   Swing-Fenster mit javax.swing.JFrame darstellen 17.3.3   Mit add(…) auf den Container 17.3.4   Fenster schließbar machen – setDefaultCloseOperation(int) 17.3.5   Sichtbarkeit des Fensters 17.3.6   Größe und Position des Fensters verändern 17.3.7   Fenster- und Dialogdekoration, Transparenz * 17.3.8   Die Klasse Toolkit * 17.3.9   Zum Vergleich: AWT-Fenster darstellen *
17.4   Beschriftungen (JLabel)
17.4.1   Mehrzeiliger Text, HTML in der Darstellung
17.5   Icon und ImageIcon für Bilder auf Swing-Komponenten
17.5.1   Die Klasse ImageIcon
17.6   Es tut sich was – Ereignisse beim AWT
17.6.1   Die Ereignisquellen und Horcher (Listener) von Swing 17.6.2   Listener implementieren 17.6.3   Listener bei dem Ereignisauslöser anmelden/abmelden 17.6.4   Adapterklassen nutzen 17.6.5   Listener-Code in inneren Klassen und Lambda-Ausdrücken 17.6.6   Aufrufen der Listener im AWT-Event-Thread 17.6.7   Ereignisse, etwas genauer betrachtet *
17.7   Schaltflächen
17.7.1   Normale Schaltflächen (JButton) 17.7.2   Der aufmerksame ActionListener 17.7.3   Schaltflächen-Ereignisse vom Typ ActionEvent 17.7.4   Basisklasse AbstractButton 17.7.5   Wechselknopf (JToggleButton)
17.8   Textkomponenten
17.8.1   Text in einer Eingabezeile 17.8.2   Die Oberklasse der Textkomponenten (JTextComponent) 17.8.3   Geschützte Eingaben (JPasswordField) 17.8.4   Validierende Eingabefelder (JFormattedTextField) 17.8.5   Einfache mehrzeilige Textfelder (JTextArea) 17.8.6   Editor-Klasse (JEditorPane) *
17.9   Swing Action * 17.10   JComponent und Component als Basis aller Komponenten
17.10.1   Hinzufügen von Komponenten 17.10.2   Tooltips (Kurzhinweise) 17.10.3   Rahmen (Border) * 17.10.4   Fokus und Navigation * 17.10.5   Ereignisse jeder Komponente * 17.10.6   Die Größe und Position einer Komponente * 17.10.7   Komponenten-Ereignisse * 17.10.8   UI-Delegate – der wahre Zeichner * 17.10.9   Undurchsichtige (opake) Komponente * 17.10.10   Properties und Listener für Änderungen *
17.11   Container
17.11.1   Standard-Container (JPanel) 17.11.2   Bereich mit automatischen Rollbalken (JScrollPane) 17.11.3   Reiter (JTabbedPane) 17.11.4   Teilungskomponente (JSplitPane)
17.12   Alles Auslegungssache – die Layoutmanager
17.12.1   Übersicht über Layoutmanager 17.12.2   Zuweisen eines Layoutmanagers 17.12.3   Im Fluss mit FlowLayout 17.12.4   BoxLayout 17.12.5   Mit BorderLayout in alle Himmelsrichtungen 17.12.6   Rasteranordnung mit GridLayout 17.12.7   Der GridBagLayoutmanager * 17.12.8   Null-Layout *
17.13   Rollbalken und Schieberegler
17.13.1   Schieberegler (JSlider) 17.13.2   Rollbalken (JScrollBar) *
17.14   Kontrollfelder, Optionsfelder, Kontrollfeldgruppen
17.14.1   Kontrollfelder (JCheckBox) 17.14.2   ItemSelectable, ItemListener und das ItemEvent 17.14.3   Sich gegenseitig ausschließende Optionen (JRadioButton)
17.15   Fortschritte bei Operationen überwachen *
17.15.1   Fortschrittsbalken (JProgressBar) 17.15.2   Dialog mit Fortschrittsanzeige (ProgressMonitor)
17.16   Menüs und Symbolleisten
17.16.1   Die Menüleisten und die Einträge 17.16.2   Menüeinträge definieren 17.16.3   Einträge durch Action-Objekte beschreiben 17.16.4   Mit der Tastatur – Mnemonics und Shortcut 17.16.5   Der Tastatur-Shortcut (Accelerator) 17.16.6   Tastenkürzel (Mnemonics) 17.16.7   Symbolleisten alias Toolbars 17.16.8   Popup-Menüs 17.16.9   System-Tray nutzen *
17.17   Das Model-View-Controller-Konzept 17.18   Auswahlmenüs, Listen und Spinner
17.18.1   Listen (JList) 17.18.2   Auswahlmenü (JComboBox) 17.18.3   Drehfeld (JSpinner) * 17.18.4   Datumsauswahl
17.19   Tabellen (JTable)
17.19.1   Ein eigenes Tabellen-Model 17.19.2   Basisklasse für eigene Modelle (AbstractTableModel) 17.19.3   Ein vorgefertigtes Standardmodell (DefaultTableModel) 17.19.4   Ein eigener Renderer für Tabellen 17.19.5   Zell-Editoren 17.19.6   Automatisches Sortieren und Filtern mit RowSorter *
17.20   Bäume (JTree)
17.20.1   JTree und sein TreeModel und TreeNode 17.20.2   Selektionen bemerken 17.20.3   Das TreeModel von JTree *
17.21   Dialoge und Window-Objekte
17.21.1   JWindow und JDialog 17.21.2   Modal oder nichtmodal? 17.21.3   Standarddialoge mit JOptionPane 17.21.4   Der Dateiauswahldialog
17.22   Flexibles Java-Look-and-Feel
17.22.1   UIManager
17.23   Swing-Komponenten neu erstellen oder verändern *
17.23.1   Überlagerungen mit dem Swing-Komponenten-Dekorator JLayer
17.24   Die Zwischenablage (Clipboard)
17.24.1   Clipboard-Objekte 17.24.2   Mit Transferable auf den Inhalt zugreifen 17.24.3   DataFlavor ist das Format der Daten in der Zwischenablage 17.24.4   Einfügungen in der Zwischenablage erkennen 17.24.5   Drag & Drop
17.25   AWT, Swing und die Threads
17.25.1   Ereignisschlange (EventQueue) und AWT-Event-Thread 17.25.2   Swing ist nicht threadsicher 17.25.3   invokeLater(…) und invokeAndWait(…) 17.25.4   SwingWorker 17.25.5   Eigene Ereignisse in die Queue setzen * 17.25.6   Auf alle Ereignisse hören *
17.26   Barrierefreiheit mit der Java Accessibility API 17.27   Zeitliches Ausführen mit dem javax.swing.Timer 17.28   Zum Weiterlesen
18   Grafikprogrammierung
18.1   Grundlegendes zum Zeichnen
18.1.1   Die paint(Graphics)-Methode für das AWT-Frame 18.1.2   Die ereignisorientierte Programmierung ändert Fensterinhalte 18.1.3   Zeichnen von Inhalten auf ein JFrame 18.1.4   Auffordern zum Neuzeichnen mit repaint(…) 18.1.5   Java 2D-API
18.2   Einfache Zeichenmethoden
18.2.1   Linien 18.2.2   Rechtecke 18.2.3   Ovale und Kreisbögen 18.2.4   Polygone und Polylines
18.3   Zeichenketten schreiben und Fonts
18.3.1   Zeichenfolgen schreiben 18.3.2   Die Font-Klasse 18.3.3   Font-Metadaten durch FontMetrics *
18.4   Geometrische Objekte
18.4.1   Die Schnittstelle Shape 18.4.2   Pfade *
18.5   Das Innere und Äußere einer Form
18.5.1   Farben und die Paint-Schnittstelle 18.5.2   Farben mit der Klasse Color 18.5.3   Composite und XOR * 18.5.4   Dicke und Art der Linien von Formen bestimmen über Stroke *
18.6   Bilder
18.6.1   Eine Übersicht über die Bilder-Bibliotheken 18.6.2   Bilder mit ImageIO lesen 18.6.3   Ein Bild zeichnen 18.6.4   Splash-Screen * 18.6.5   Bilder skalieren * 18.6.6   Schreiben mit ImageIO 18.6.7   Asynchrones Laden mit getImage(…) und dem MediaTracker *
18.7   Weitere Eigenschaften von Graphics *
18.7.1   Eine Kopie von Graphics erstellen 18.7.2   Koordinatensystem verschieben 18.7.3   Beschnitt (Clipping) 18.7.4   Zeichenhinweise durch RenderingHints 18.7.5   Transformationen mit einem AffineTransform-Objekt
18.8   Drucken *
18.8.1   Drucken der Inhalte 18.8.2   Bekannte Drucker
18.9   Benutzerinteraktionen automatisieren, Robot und Screenshots *
18.9.1   Der Roboter 18.9.2   Automatisch in die Tasten hauen 18.9.3   Automatisierte Mausoperationen 18.9.4   Methoden zur Zeitsteuerung 18.9.5   Bildschirmabzüge (Screenshots) 18.9.6   Funktionsweise und Beschränkungen 18.9.7   MouseInfo und PointerInfo
18.10   Zum Weiterlesen
19   JavaFX
19.1   Das erste Programm mit JavaFX 19.2   Zentrale Typen in JavaFX
19.2.1   Szenegraph-Knoten und Container-Typen 19.2.2   Datenstrukturen
19.3   JavaFX-Komponenten und Layout-Container-Klassen
19.3.1   Überblick über die Komponenten 19.3.2   Listener/Handler zur Ereignisbeobachtung 19.3.3   Panels mit speziellen Layouts
19.4   Webbrowser 19.5   Geometrische Objekte
19.5.1   Linien und Rechtecke 19.5.2   Kreise, Ellipsen, Kreisförmiges 19.5.3   Es werde kurvig – quadratische und kubische Splines 19.5.4   Pfade * 19.5.5   Polygone und Polylines 19.5.6   Beschriftungen, Texte, Fonts 19.5.7   Die Oberklasse Shape
19.6   Füllart von Formen
19.6.1   Farben mit der Klasse Color
19.7   Grafiken
19.7.1   Klasse Image 19.7.2   ImageView 19.7.3   Programm-Icon/Fenster-Icon setzen 19.7.4   Zugriff auf die Pixel und neue Pixel-Bilder *
19.8   Deklarative Oberflächen mit FXML 19.9   Diagramme (Charts)
19.9.1   Kuchendiagramm 19.9.2   Balkendiagramm
19.10   Animationen
19.10.1   FadeTransition 19.10.2   ScaleTransition 19.10.3   Transitionen parallel oder sequenziell durchführen
19.11   Medien abspielen 19.12   Java 3D 19.13   Das Geometry-Paket * 19.14   JavaFX-Scene in Swing-Applikationen einbetten 19.15   Zum Weiterlesen
20   Sicherheitskonzepte
20.1   Zentrale Elemente der Java-Sicherheit
20.1.1   Sichere Java Virtual Machine 20.1.2   Der Sandkasten (Sandbox) 20.1.3   Security-API der Java SE 20.1.4   Cryptographic Service Providers
20.2   Sicherheitsmanager (Security-Manager)
20.2.1   Der Sicherheitsmanager bei Applets 20.2.2   Sicherheitsmanager aktivieren 20.2.3   Rechte durch Policy-Dateien vergeben 20.2.4   Erstellen von Rechtedateien mit dem grafischen Policy-Tool 20.2.5   Kritik an den Policies
20.3   Signierung
20.3.1   Warum signieren? 20.3.2   Digitale Ausweise und die Zertifizierungsstelle 20.3.3   Mit keytool Schlüssel erzeugen 20.3.4   Signieren mit jarsigner
20.4   Kryptografische Hashfunktion
20.4.1   Die MDx-Reihe 20.4.2   Secure Hash Algorithm (SHA) 20.4.3   Mit der Security-API einen Fingerabdruck berechnen 20.4.4   Die Klasse MessageDigest
20.5   Verschlüsseln von Daten(-strömen) *
20.5.1   Den Schlüssel, bitte 20.5.2   Verschlüsseln mit Cipher 20.5.3   Verschlüsseln von Datenströmen
20.6   Zum Weiterlesen
21   Dynamische Übersetzung, Skriptsprachen, JShell
21.1   Codegenerierung
21.1.1   Generierung von Java-Quellcode 21.1.2   Codetransformationen 21.1.3   Erstellen von Java-Bytecode
21.2   Programme mit der Java Compiler API übersetzen
21.2.1   Java Compiler API 21.2.2   Fehlerdiagnose 21.2.3   Eine im String angegebene Kompilationseinheit übersetzen 21.2.4   Wenn Quelle und Ziel der Speicher sind
21.3   Ausführen von Skripten
21.3.1   Java-Programme mit JavaScript schreiben 21.3.2   Kommandozeilenprogramme jrunscript und jjs 21.3.3   javax.script-API 21.3.4   JavaScript-Programme ausführen 21.3.5   Alternative Sprachen für die JVM 21.3.6   Von den Schwierigkeiten, dynamische Programmiersprachen auf die JVM zu bringen *
21.4   JShell, die interaktive REPL-Shell
21.4.1   JShell API
21.5   Zum Weiterlesen
22   Java Native Interface (JNI)
22.1   Java Native Interface und Invocation-API 22.2   Eine C-Funktion in ein Java-Programm einbinden
22.2.1   Den Java-Code schreiben
22.3   Dynamische Bibliotheken erzeugen
22.3.1   Die Header-Datei erzeugen 22.3.2   Implementierung der Funktion in C 22.3.3   Die C-Programme übersetzen und die dynamische Bibliothek erzeugen 22.3.4   Abhängige Bibliotheken entdecken 22.3.5   Nativ die String-Länge ermitteln
22.4   Erweiterte JNI-Eigenschaften
22.4.1   Klassendefinitionen 22.4.2   Zugriff auf Attribute 22.4.3   Methoden aufrufen 22.4.4   Threads und Synchronisation 22.4.5   @Native Markierungen *
22.5   Einfache Anbindung von existierenden Bibliotheken
22.5.1   JNA (Java Native Access) 22.5.2   BridJ 22.5.3   Generieren von JNI-Wrappern aus C++-Klassen und C-Headern 22.5.4   COM-Schnittstellen anzapfen
22.6   Invocation-API 22.7   Zum Weiterlesen
23   Dienstprogramme für die Java-Umgebung
23.1   Programme des JDK 23.2   Monitoringprogramme vom JDK
23.2.1   jps 23.2.2   jstat 23.2.3   jmap 23.2.4   jstack 23.2.5   jcmd 23.2.6   jhsdb 23.2.7   VisualVM
23.3   Ant
23.3.1   Bezug und Installation von Ant 23.3.2   Das Build-Skript build.xml 23.3.3   Build den Build 23.3.4   Properties 23.3.5   Externe und vordefinierte Properties 23.3.6   Weitere Ant-Tasks
23.4   Disassembler, Decompiler und Obfuscator
23.4.1   Der Disassembler javap * 23.4.2   Decompiler 23.4.3   Obfuscatoren
23.5   Weitere Dienstprogramme
23.5.1   Java-Programme als Systemdienst ausführen
23.6   Zum Weiterlesen
Stichwortverzeichnis Rechtliche Hinweise Über den Autor
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion