Java 7 - Mehr als eine Insel

Werbung
Inhalt
Inhalt
Vorwort ......................................................................................................................................................
35
1
Neues in Java 7
1.1
Sprachänderungen ........................................................................................................................
41
1.1.1
Zahlen im Binärsystem schreiben ..........................................................................
41
1.1.2
Unterstriche bei Ganzzahlen ....................................................................................
41
1.1.3
switch (String) ................................................................................................................
42
1.1.4
Zusammenfassen gleicher catch-Blöcke mit dem multi-catch ......................
43
1.1.5
Präzisiertes rethrows ..................................................................................................
47
1.1.6
Automatisches Ressourcen-Management (try mit Ressourcen) ...................
51
1.1.7
try mit Ressourcen .......................................................................................................
51
1.1.8
Ausnahmen vom close() bleiben bestehen ..........................................................
53
1.1.9
Die Schnittstelle AutoCloseable ...............................................................................
53
1.1.10
Mehrere Ressourcen nutzen .....................................................................................
55
1.1.11
Unterdrückte Ausnahmen * ......................................................................................
56
JVM-Änderungen ...........................................................................................................................
59
1.2.1
invokedynamic .............................................................................................................
60
Neue Pakete und Klassen ............................................................................................................
63
1.3.1
63
1.2
1.3
Weitere Änderungen ...................................................................................................
2
Threads und nebenläufige Programmierung
2.1
Threads erzeugen ..........................................................................................................................
2.2
65
2.1.1
Threads über die Schnittstelle Runnable implementieren .............................
65
2.1.2
Thread mit Runnable starten ...................................................................................
66
2.1.3
Die Klasse Thread erweitern .....................................................................................
68
Thread-Eigenschaften und -Zustände .....................................................................................
71
2.2.1
Der Name eines Threads ............................................................................................
71
2.2.2
Wer bin ich? ....................................................................................................................
72
2.2.3
Die Zustände eines Threads * ....................................................................................
72
5
Inhalt
2.3
2.4
2.5
6
2.2.4
Schläfer gesucht ...........................................................................................................
73
2.2.5
Mit yield() auf Rechenzeit verzichten ...................................................................
75
2.2.6
Der Thread als Dämon ................................................................................................
76
2.2.7
Das Ende eines Threads .............................................................................................
78
2.2.8
Einen Thread höflich mit Interrupt beenden .....................................................
79
2.2.9
UncaughtExceptionHandler für unbehandelte Ausnahmen ........................
81
2.2.10
Der stop() von außen und die Rettung mit ThreadDeath * .............................
82
2.2.11
Ein Rendezvous mit join() * ......................................................................................
84
2.2.12
Arbeit niederlegen und wieder aufnehmen * .....................................................
87
2.2.13
Priorität * ........................................................................................................................
87
Der Ausführer (Executor) kommt .............................................................................................
88
2.3.1
89
Die Schnittstelle Executor .........................................................................................
2.3.2
Die Thread-Pools ..........................................................................................................
91
2.3.3
Threads mit Rückgabe über Callable .....................................................................
92
2.3.4
Mehrere Callable abarbeiten ....................................................................................
96
2.3.5
ScheduledExecutorService für wiederholende Ausgaben und
Zeitsteuerungen nutzen ............................................................................................
97
Synchronisation über kritische Abschnitte ...........................................................................
98
2.4.1
Gemeinsam genutzte Daten ....................................................................................
98
2.4.2
Probleme beim gemeinsamen Zugriff und kritische Abschnitte .................
98
2.4.3
Punkte parallel initialisieren ...................................................................................
100
2.4.4
i++ sieht atomar aus, ist es aber nicht * ................................................................
102
2.4.5
Kritische Abschnitte schützen .................................................................................
103
2.4.6
Kritische Abschnitte mit ReentrantLock schützen ...........................................
106
2.4.7
Synchronisieren mit synchronized .......................................................................
113
2.4.8
Synchronized-Methoden der Klasse StringBuffer * ..........................................
114
2.4.9
Mit synchronized synchronisierte Blöcke ...........................................................
115
2.4.10
Dann machen wir doch gleich alles synchronisiert! ........................................
117
2.4.11
Lock-Freigabe im Fall von Exceptions ...................................................................
118
2.4.12
Deadlocks .......................................................................................................................
119
2.4.13
Mit synchronized nachträglich synchronisieren * ............................................
121
2.4.14
Monitore sind reentrant – gut für die Geschwindigkeit * ...............................
122
2.4.15
Synchronisierte Methodenaufrufe zusammenfassen * ..................................
123
Synchronisation über Warten und Benachrichtigen ..........................................................
124
2.5.1
Die Schnittstelle Condition ......................................................................................
125
2.5.2
It’s Disco-Time * ...........................................................................................................
129
Inhalt
2.6
2.7
2.8
2.9
2.5.3
Warten mit wait() und Aufwecken mit notify() * ................................................
135
2.5.4
Falls der Lock fehlt: IllegalMonitorStateException * .........................................
136
Datensynchronisation durch besondere Concurrency-Klassen * .....................................
138
2.6.1
138
Semaphor ........................................................................................................................
2.6.2
Barrier und Austausch ................................................................................................
143
2.6.3
Stop and go mit Exchanger .......................................................................................
145
Atomare Operationen und frische Werte mit volatile * .....................................................
145
2.7.1
Der Modifizierer volatile bei Objekt-/Klassenvariablen ..................................
146
2.7.2
Das Paket java.util.concurrent.atomic ...................................................................
148
Teile und herrsche mit Fork und Join * ....................................................................................
149
2.8.1
Algorithmendesign per »teile und herrsche« .....................................................
149
2.8.2
Paralleles Lösen von D&C-Algorithmen ...............................................................
151
2.8.3
Fork und Join .................................................................................................................
152
Mit dem Thread verbundene Variablen * ...............................................................................
156
2.9.1
ThreadLocal ....................................................................................................................
156
2.9.2
InheritableThreadLocal ..............................................................................................
159
2.9.3
ThreadLocalRandom als Zufallszahlengenerator ...............................................
160
2.9.4
ThreadLocal bei der Performance-Optimierung ................................................
161
2.10 Threads in einer Thread-Gruppe * ............................................................................................
162
2.10.1
Aktive Threads in der Umgebung ...........................................................................
162
2.10.2
Etwas über die aktuelle Thread-Gruppe herausfinden .....................................
163
2.10.3
Threads in einer Thread-Gruppe anlegen .............................................................
166
2.10.4
Methoden von Thread und ThreadGroup im Vergleich ..................................
169
2.11 Zeitgesteuerte Abläufe ................................................................................................................
170
2.11.1
Die Typen Timer und TimerTask .............................................................................
171
2.11.2
Job-Scheduler Quartz ..................................................................................................
172
2.12 Einen Abbruch der virtuellen Maschine erkennen ...............................................................
173
2.13 Zum Weiterlesen ...........................................................................................................................
174
3
Datenstrukturen und Algorithmen
3.1
Datenstrukturen und die Collection-API ................................................................................
175
3.1.1
Designprinzip mit Schnittstellen, abstrakten und konkreten Klassen .......
176
3.1.2
Die Basis-Schnittstellen Collection und Map ......................................................
176
3.1.3
Die Utility-Klassen Collections und Arrays ..........................................................
177
7
Inhalt
3.2
3.3
3.4
3.5
3.6
8
3.1.4
Das erste Programm mit Container-Klassen ......................................................
177
3.1.5
Die Schnittstelle Collection und Kernkonzepte .................................................
178
3.1.6
Schnittstellen, die Collection erweitern, und Map ............................................
182
3.1.7
Konkrete Container-Klassen ....................................................................................
185
3.1.8
Generische Datentypen in der Collection-API ....................................................
187
3.1.9
Die Schnittstelle Iterable und das erweiterte for ...............................................
187
Listen ................................................................................................................................................
188
3.2.1
Erstes Listen-Beispiel ..................................................................................................
189
3.2.2
Auswahlkriterium ArrayList oder LinkedList .....................................................
190
3.2.3
Die Schnittstelle List ...................................................................................................
191
3.2.4
ArrayList .........................................................................................................................
197
3.2.5
LinkedList .......................................................................................................................
200
3.2.6
Der Feld-Adapter Arrays.asList() .............................................................................
201
3.2.7
ListIterator * ...................................................................................................................
202
3.2.8
toArray() von Collection verstehen – die Gefahr einer Falle erkennen ......
204
3.2.9
Primitive Elemente in Datenstrukturen verwalten ..........................................
207
Mengen (Sets) ................................................................................................................................
208
3.3.1
Ein erstes Mengen-Beispiel .......................................................................................
209
3.3.2
Methoden der Schnittstelle Set ...............................................................................
212
3.3.3
HashSet ...........................................................................................................................
213
3.3.4
TreeSet – die sortierte Menge ..................................................................................
214
3.3.5
Die Schnittstellen NavigableSet und SortedSet .................................................
216
3.3.6
LinkedHashSet ..............................................................................................................
218
Stack (Kellerspeicher, Stapel) ....................................................................................................
218
3.4.1
Die Methoden von Stack ...........................................................................................
219
Queues (Schlangen) und Deques ..............................................................................................
220
3.5.1
Queue-Klassen ..............................................................................................................
221
3.5.2
Deque-Klassen ..............................................................................................................
222
3.5.3
Blockierende Queues und Prioritätswarteschlangen .......................................
223
3.5.4
PriorityQueue ...............................................................................................................
223
Assoziative Speicher ....................................................................................................................
228
3.6.1
Die Klassen HashMap und TreeMap ......................................................................
228
3.6.2
Einfügen und Abfragen der Datenstruktur .........................................................
231
3.6.3
Über die Bedeutung von equals() und hashCode() ............................................
234
3.6.4
Eigene Objekte hashen ...............................................................................................
235
3.6.5
IdentityHashMap .........................................................................................................
237
3.6.6
Das Problem von veränderten Elementen ..........................................................
237
Inhalt
3.7
3.8
3.9
3.6.7
Aufzählungen und Ansichten des Assoziativspeichers ...................................
237
3.6.8
Die Arbeitsweise einer Hash-Tabelle * ...................................................................
241
Die Properties-Klasse ...................................................................................................................
243
3.7.1
Properties setzen und lesen ......................................................................................
243
3.7.2
Properties verketten ....................................................................................................
244
3.7.3
Hierarchische Eigenschaften ....................................................................................
245
3.7.4
Eigenschaften auf der Konsole ausgeben * ..........................................................
245
3.7.5
Properties laden und speichern ...............................................................................
246
3.7.6
Klassenbeziehungen: Properties und Hashtable * .............................................
248
Mit einem Iterator durch die Daten wandern .......................................................................
249
3.8.1
Die Schnittstelle Iterator ............................................................................................
249
3.8.2
Der Iterator kann (eventuell auch) löschen .........................................................
251
3.8.3
Einen Zufallszahleniterator schreiben ..................................................................
252
3.8.4
Iteratoren von Sammlungen, das erweiterte for und Iterable .......................
254
3.8.5
Fail-Fast-Iterator und die ConcurrentModificationException .......................
258
3.8.6
Die Schnittstelle Enumerator * ................................................................................
260
Algorithmen in Collections .........................................................................................................
261
3.9.1
263
Die Bedeutung von Ordnung mit Comparator und Comparable .................
3.9.2
Sortieren ..........................................................................................................................
264
3.9.3
Den größten und kleinsten Wert einer Collection finden ...............................
267
3.9.4
Nicht-änderbare Datenstrukturen, immutable oder nur-lesen? ...................
270
3.9.5
Null Object Pattern und leere Sammlungen/Iteratoren zurückgeben ........
274
3.9.6
Mit der Halbierungssuche nach Elementen fahnden .......................................
278
3.9.7
Ersetzen, Kopieren, Füllen, Umdrehen, Rotieren * ............................................
279
3.9.8
Listen durchwürfeln * .................................................................................................
281
3.9.9
Häufigkeit eines Elements * ......................................................................................
282
3.9.10
Singletons * .....................................................................................................................
282
3.9.11
nCopies() * .......................................................................................................................
283
3.10 Spezielle thread-sichere Datenstrukturen .............................................................................
3.10.1
Wait-free-Algorithmen ...............................................................................................
3.10.2
Nebenläufiger Assoziativspeicher und die Schnittstelle
284
284
ConcurrentMap .............................................................................................................
284
3.10.3
ConcurrentLinkedQueue ...........................................................................................
285
3.10.4
CopyOnWriteArrayList und CopyOnWriteArraySet ..........................................
285
3.10.5
Wrapper zur Synchronisation ..................................................................................
286
3.10.6
Blockierende Warteschlangen ..................................................................................
287
9
Inhalt
3.10.7
ArrayBlockingQueue und LinkedBlockingQueue .............................................
287
3.10.8
PriorityBlockingQueue ..............................................................................................
290
3.11 Google Guava (aka Google Collections Library) ..................................................................
294
3.11.1
Beispiel Multi-Set und Multi-Map ..........................................................................
294
3.11.2
Datenstrukturen aus Guava .....................................................................................
295
3.11.3
Utility-Klassen von Guava ........................................................................................
297
3.11.4
Prädikate .........................................................................................................................
298
3.11.5
Transformationen .......................................................................................................
299
3.12 Die Klasse BitSet für Bitmengen * ............................................................................................
299
3.12.1
Ein BitSet anlegen, füllen und erfragen ................................................................
300
3.12.2
Mengenorientierte Operationen ............................................................................
301
3.12.3
Methodenübersicht ....................................................................................................
302
3.12.4
Primzahlen in einem BitSet verwalten .................................................................
304
3.13 Zum Weiterlesen ..........................................................................................................................
304
4
Raum und Zeit
4.1
Weltzeit * ........................................................................................................................................
305
4.2
Wichtige Datum-Klassen im Überblick ..................................................................................
306
4.3
4.4
4.5
4.6
10
4.2.1
Der 1.1.1970 ...................................................................................................................
307
4.2.2
System.currentTimeMillis() .....................................................................................
307
4.2.3
Einfache Zeitumrechnungen durch TimeUnit ...................................................
307
Sprachen der Länder ....................................................................................................................
308
4.3.1
Sprachen und Regionen über Locale-Objekte .....................................................
309
Internationalisierung und Lokalisierung ...............................................................................
312
4.4.1
ResourceBundle-Objekte und Ressource-Dateien .............................................
313
4.4.2
Ressource-Dateien zur Lokalisierung ....................................................................
314
4.4.3
Die Klasse ResourceBundle ......................................................................................
314
4.4.4
Ladestrategie für ResourceBundle-Objekte .........................................................
316
Die Klasse Date ..............................................................................................................................
317
4.5.1
Objekte erzeugen und Methoden nutzen ............................................................
317
4.5.2
Date-Objekte sind nicht immutable ......................................................................
319
Calendar und GregorianCalendar ............................................................................................
320
4.6.1
Die abstrakte Klasse Calendar ..................................................................................
320
4.6.2
Der gregorianische Kalender ...................................................................................
322
Inhalt
4.7
4.8
4.9
4.6.3
Calendar nach Date und Millisekunden fragen ..................................................
325
4.6.4
Ostertage * ......................................................................................................................
326
4.6.5
Abfragen und Setzen von Datumselementen über Feldbezeichner ............
328
4.6.6
Wie viele Tage hat der Monat, oder wie viele Monate hat ein Jahr? * ..........
333
4.6.7
Wann beginnt die Woche und wann die erste Woche im Jahr? * ..................
335
Zeitzonen in Java * ........................................................................................................................
336
4.7.1
Zeitzonen durch die Klasse TimeZone repräsentieren .....................................
337
4.7.2
SimpleTimeZone ..........................................................................................................
337
4.7.3
Methoden von TimeZone ..........................................................................................
339
Zeitdauern und der XML-Datentyp Duration * .....................................................................
340
4.8.1
DatatypeFactory als Fabrik ........................................................................................
341
4.8.2
Die Duration-Klasse und ihre Methoden ..............................................................
342
Formatieren und Parsen von Datumsangaben .....................................................................
345
4.9.1
Ausgaben mit printf() ..................................................................................................
345
4.9.2
Mit DateFormat und SimpleDateFormat formatieren .....................................
346
4.9.3
Parsen von Datumswerten ........................................................................................
352
4.10 Zum Weiterlesen ...........................................................................................................................
355
5
Dateien, Verzeichnisse und Dateizugriffe
5.1
Datei und Verzeichnis ..................................................................................................................
357
5.1.1
Dateien und Verzeichnisse mit der Klasse File ...................................................
358
5.1.2
Verzeichnis oder Datei? Existiert es? .....................................................................
361
5.1.3
Verzeichnis- und Dateieigenschaften/-attribute ...............................................
362
5.1.4
Umbenennen und Verzeichnisse anlegen ...........................................................
365
5.1.5
Verzeichnisse auflisten und Dateien filtern ........................................................
365
5.1.6
Dateien berühren, neue Dateien anlegen, temporäre Dateien ......................
369
5.1.7
Dateien und Verzeichnisse löschen ........................................................................
370
5.1.8
Verzeichnisse nach Dateien iterativ durchsuchen * ..........................................
372
5.1.9
Wurzelverzeichnis, Laufwerksnamen, Plattenspeicher * ................................
373
5.1.10
URL-, URI- und Path-Objekte aus einem File-Objekt ableiten * ......................
376
5.1.11
Mit Locking Dateien sperren * ..................................................................................
376
5.1.12
Sicherheitsprüfung * ...................................................................................................
377
5.1.13
Zugriff auf SMB-Server mit jCIFS * ..........................................................................
378
11
Inhalt
5.2
5.3
5.4
Dateien mit wahlfreiem Zugriff ...............................................................................................
378
5.2.1
Ein RandomAccessFile zum Lesen und Schreiben öffnen ..............................
379
5.2.2
Aus dem RandomAccessFile lesen .........................................................................
380
5.2.3
Schreiben mit RandomAccessFile ..........................................................................
383
5.2.4
Die Länge des RandomAccessFile ...........................................................................
384
5.2.5
Hin und her in der Datei ............................................................................................
384
Dateisysteme unter NIO.2 ..........................................................................................................
385
5.3.1
FileSystem und Path ...................................................................................................
386
5.3.2
Die Utility-Klasse Files ...............................................................................................
392
5.3.3
Dateien kopieren und verschieben ........................................................................
395
397
5.3.4
Dateiattribute * .............................................................................................................
5.3.5
Neue Dateien, Verzeichnisse, symbolische Verknüpfungen anlegen
und löschen ...................................................................................................................
406
5.3.6
MIME-Typen testen * ..................................................................................................
408
5.3.7
Verzeichnislistings (DirectoryStream) und Filter * ...........................................
410
5.3.8
Rekursive Abläufe des Verzeichnisbaums (FileVisitor) * ................................
412
5.3.9
Dateisysteme und Dateisystemattribute * ..........................................................
416
5.3.10
Verzeichnisse im Dateisystem überwachen * .....................................................
420
Wahlfreier Zugriff mit SeekableByteChannel und ByteBuffer * .....................................
422
5.4.1
SeekableByteChannel .................................................................................................
422
5.4.2
ByteBuffer ......................................................................................................................
423
5.4.3
Beispiel mit Path + SeekableByteChannel + ByteBuffer ..................................
423
5.4.4
FileChannel ....................................................................................................................
424
5.5
Zum Weiterlesen ..........................................................................................................................
426
6
Datenströme
6.1
Stream-Klassen und Reader/Writer am Beispiel von Dateien .........................................
427
6.1.1
Mit dem FileWriter Texte in Dateien schreiben .................................................
428
6.1.2
Zeichen mit der Klasse FileReader lesen ..............................................................
430
6.1.3
Kopieren mit FileOutputStream und FileInputStream ...................................
431
6.2
12
6.1.4
Das FileDescriptor-Objekt * ......................................................................................
435
6.1.5
Datenströme über Files mit NIO.2 beziehen .......................................................
436
Basisklassen für die Ein-/Ausgabe ...........................................................................................
438
6.2.1
Die abstrakten Basisklassen .....................................................................................
438
6.2.2
Übersicht über Ein-/Ausgabeklassen ....................................................................
439
Inhalt
6.3
6.4
6.5
6.6
6.7
6.2.3
Die abstrakte Basisklasse OutputStream ..............................................................
441
6.2.4
Die Schnittstellen Closeable, AutoCloseable und Flushable ...........................
443
6.2.5
Ein Datenschlucker * ...................................................................................................
444
6.2.6
Die abstrakte Basisklasse InputStream .................................................................
445
6.2.7
Ressourcen aus dem Klassenpfad und aus Jar-Archiven laden .....................
446
6.2.8
Ströme mit SequenceInputStream zusammensetzen * ...................................
447
6.2.9
Die abstrakte Basisklasse Writer ..............................................................................
449
6.2.10
Die Schnittstelle Appendable * .................................................................................
451
6.2.11
Die abstrakte Basisklasse Reader .............................................................................
451
Formatierte Textausgaben .........................................................................................................
454
6.3.1
Die Klassen PrintWriter und PrintStream ............................................................
455
6.3.2
System.out, System.err und System.in ..................................................................
460
Schreiben und Lesen aus Strings und Byte-Feldern .............................................................
462
6.4.1
Mit dem StringWriter ein String-Objekt füllen ...................................................
463
6.4.2
CharArrayWriter ...........................................................................................................
464
6.4.3
StringReader und CharArrayReader .......................................................................
465
6.4.4
Mit ByteArrayOutputStream in ein Byte-Feld schreiben ................................
467
6.4.5
Mit ByteArrayInputStream aus einem Byte-Feld lesen ....................................
467
Datenströme filtern und verketten .........................................................................................
468
6.5.1
Streams als Filter verketten (verschachteln) .......................................................
469
6.5.2
Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream .....
469
6.5.3
Gepufferte Eingaben mit BufferedReader/BufferedInputStream ................
471
6.5.4
LineNumberReader zählt automatisch Zeilen mit * ..........................................
474
6.5.5
Daten mit der Klasse PushbackReader zurücklegen * .......................................
474
6.5.6
DataOutputStream/DataInputStream * ................................................................
478
6.5.7
Basisklassen für Filter * ...............................................................................................
478
6.5.8
Die Basisklasse FilterWriter * ....................................................................................
479
6.5.9
Ein LowerCaseWriter * ................................................................................................
480
6.5.10
Eingaben mit der Klasse FilterReader filtern * ....................................................
482
6.5.11
Anwendungen für FilterReader und FilterWriter * ............................................
483
Vermittler zwischen Byte-Streams und Unicode-Strömen ...............................................
491
6.6.1
Datenkonvertierung durch den OutputStreamWriter .....................................
491
6.6.2
Automatische Konvertierungen mit dem InputStreamReader ....................
492
Kommunikation zwischen Threads mit Pipes * ....................................................................
493
6.7.1
PipedOutputStream und PipedInputStream .......................................................
494
6.7.2
PipedWriter und PipedReader ..................................................................................
496
13
Inhalt
6.8
6.9
Prüfsummen ...................................................................................................................................
498
6.8.1
Die Schnittstelle Checksum ......................................................................................
498
6.8.2
Die Klasse CRC32 ..........................................................................................................
499
6.8.3
Die Adler32-Klasse .......................................................................................................
501
Persistente Objekte und Serialisierung ..................................................................................
502
6.9.1
Objekte mit der Standard-Serialisierung speichern und lesen .....................
503
6.9.2
Zwei einfache Anwendungen der Serialisierung * ............................................
506
6.9.3
Die Schnittstelle Serializable ....................................................................................
507
6.9.4
Nicht serialisierbare Attribute aussparen ............................................................
509
6.9.5
Das Abspeichern selbst in die Hand nehmen .....................................................
511
6.9.6
Tiefe Objektkopien * ...................................................................................................
515
6.9.7
Versionenverwaltung und die SUID ......................................................................
517
6.9.8
Wie die ArrayList serialisiert * .................................................................................
519
6.9.9
Probleme mit der Serialisierung .............................................................................
520
6.10 Alternative Datenaustauschformate ......................................................................................
522
6.10.1
Serialisieren in XML-Dateien ...................................................................................
522
6.10.2
XML-Serialisierung von JavaBeans mit JavaBeans Persistence * ..................
522
6.10.3
Die Open-Source-Bibliothek XStream * ................................................................
525
6.10.4
Binäre Serialisierung mit Google Protocol Buffers * ........................................
526
6.11 Tokenizer * ......................................................................................................................................
526
6.11.1
StreamTokenizer ..........................................................................................................
526
6.12 Zum Weiterlesen ..........................................................................................................................
529
7
Die eXtensible Markup Language (XML)
7.1
Auszeichnungssprachen .............................................................................................................
531
7.1.1
Die Standard Generalized Markup Language (SGML) ......................................
532
7.1.2
Extensible Markup Language (XML) ......................................................................
532
Eigenschaften von XML-Dokumenten ....................................................................................
533
7.2.1
Elemente und Attribute .............................................................................................
533
7.2.2
Beschreibungssprache für den Aufbau von XML-Dokumenten ...................
535
7.2.3
Schema – eine Alternative zu DTD .........................................................................
539
7.2.4
Namensraum (Namespace) ......................................................................................
542
7.2.5
XML-Applikationen * ..................................................................................................
543
7.2
14
Inhalt
7.3
7.4
7.5
7.6
7.7
Die Java-APIs für XML ..................................................................................................................
544
7.3.1
Das Document Object Model (DOM) ......................................................................
545
7.3.2
Simple API for XML Parsing (SAX) ...........................................................................
545
7.3.3
Pull-API StAX .................................................................................................................
545
7.3.4
Java Document Object Model (JDOM) ....................................................................
545
7.3.5
JAXP als Java-Schnittstelle zu XML .........................................................................
546
7.3.6
DOM-Bäume einlesen mit JAXP * ............................................................................
547
Java Architecture for XML Binding (JAXB) ..............................................................................
548
7.4.1
Bean für JAXB aufbauen .............................................................................................
548
7.4.2
JAXBContext und die Marshaller ............................................................................
549
7.4.3
Ganze Objektgraphen schreiben und lesen .........................................................
550
7.4.4
Validierung .....................................................................................................................
553
7.4.5
Weitere JAXB-Annotationen * ..................................................................................
557
7.4.6
Beans aus XML-Schema-Datei generieren ............................................................
565
Serielle Verarbeitung mit StAX .................................................................................................
570
7.5.1
Unterschiede der Verarbeitungsmodelle .............................................................
571
7.5.2
XML-Dateien mit dem Cursor-Verfahren lesen ..................................................
572
7.5.3
XML-Dateien mit dem Iterator-Verfahren verarbeiten * .................................
576
7.5.4
Mit Filtern arbeiten * ...................................................................................................
578
7.5.5
XML-Dokumente schreiben ......................................................................................
579
Serielle Verarbeitung von XML mit SAX * ..............................................................................
582
7.6.1
583
Schnittstellen von SAX ...............................................................................................
7.6.2
SAX-Parser erzeugen ...................................................................................................
584
7.6.3
Operationen der Schnittstelle ContentHandler .................................................
584
7.6.4
ErrorHandler und EntityResolver ...........................................................................
587
XML-Dateien mit JDOM verarbeiten .......................................................................................
588
7.7.1
JDOM beziehen ..............................................................................................................
588
7.7.2
Paketübersicht * ............................................................................................................
588
7.7.3
Die Document-Klasse ..................................................................................................
590
7.7.4
Eingaben aus der Datei lesen ....................................................................................
591
7.7.5
Das Dokument im XML-Format ausgeben ...........................................................
592
7.7.6
Der Dokumenttyp * ......................................................................................................
593
7.7.7
Elemente .........................................................................................................................
594
7.7.8
Zugriff auf Elementinhalte ........................................................................................
597
7.7.9
Liste mit Unterelementen erzeugen * ....................................................................
599
7.7.10
Neue Elemente einfügen und ändern ....................................................................
600
15
Inhalt
7.8
7.9
7.7.11
Attributinhalte lesen und ändern ..........................................................................
603
7.7.12
XPath ...............................................................................................................................
606
Transformationen mit XSLT * ....................................................................................................
610
7.8.1
Templates und XPath als Kernelemente von XSLT ...........................................
610
7.8.2
Umwandlung von XML-Dateien mit JDOM und JAXP .....................................
613
XML-Schema-Validierung * ........................................................................................................
614
7.9.1
SchemaFactory und Schema ....................................................................................
614
7.9.2
Validator .........................................................................................................................
614
7.9.3
Validierung unterschiedlicher Datenquellen durchführen ...........................
615
7.10 Zum Weiterlesen ..........................................................................................................................
615
8
Dateiformate
8.1
Einfache Dateiformate für strukturierte Daten ...................................................................
618
8.1.1
618
8.2
8.3
Property-Dateien .........................................................................................................
8.1.2
CSV-Dateien ...................................................................................................................
618
8.1.3
JSON-Serialisierung mit Jackson .............................................................................
619
Dokumentenformate ...................................................................................................................
620
8.2.1
(X)HTML ..........................................................................................................................
620
8.2.2
PDF-Dokumente ...........................................................................................................
622
8.2.3
Microsoft Office-Dokumente ...................................................................................
622
8.2.4
OASIS Open Document Format ...............................................................................
624
Datenkompression * ....................................................................................................................
624
8.3.1
Java-Unterstützung beim Komprimieren ............................................................
625
8.3.2
Daten packen und entpacken ..................................................................................
626
8.3.3
Datenströme komprimieren ....................................................................................
627
8.3.4
Zip-Archive ....................................................................................................................
632
8.3.5
Jar-Archive .....................................................................................................................
640
8.4
Bild-Formate ..................................................................................................................................
640
8.5
Audio-Dateien ...............................................................................................................................
640
8.5.1
Die Arbeit mit AudioClip ...........................................................................................
640
8.5.2
MIDI-Dateien abspielen .............................................................................................
641
16
Inhalt
9
Grafische Oberflächen mit Swing
9.1
Fenster zur Welt ............................................................................................................................
645
9.1.1
Swing-Fenster mit javax.swing.JFrame darstellen .............................................
645
9.1.2
Fenster schließbar machen – setDefaultCloseOperation() ..............................
647
9.1.3
Sichtbarkeit des Fensters ...........................................................................................
648
9.1.4
Größe und Position des Fensters verändern .......................................................
648
9.1.5
Fenster- und Dialog-Dekoration, Transparenz * .................................................
649
9.1.6
Die Klasse Toolkit * ......................................................................................................
650
9.1.7
Dynamisches Layout während einer Größenänderung * ................................
651
9.1.8
Zum Vergleich: AWT-Fenster darstellen * .............................................................
651
Beschriftungen (JLabel) ...............................................................................................................
653
9.2.1
Mehrzeiliger Text, HTML in der Darstellung .......................................................
656
Icon und ImageIcon für Bilder auf Swing-Komponenten ..................................................
657
9.3.1
Die Klasse ImageIcon ..................................................................................................
657
9.3.2
Die Schnittstelle Icon und eigene Icons zeichnen * ...........................................
659
Es tut sich was – Ereignisse beim AWT ...................................................................................
661
9.4.1
Die Ereignisquellen und Horcher (Listener) von Swing ...................................
662
9.4.2
Listener implementieren ...........................................................................................
663
9.4.3
Listener bei dem Ereignisauslöser anmelden/abmelden ................................
666
9.4.4
Adapterklassen nutzen ...............................................................................................
668
9.4.5
Innere Mitgliedsklassen und innere anonyme Klassen ...................................
670
9.4.6
Aufrufen der Listener im AWT-Event-Thread .....................................................
672
9.4.7
Ereignisse, etwas genauer betrachtet * ..................................................................
673
9.2
9.3
9.4
9.5
9.6
Schaltflächen ..................................................................................................................................
676
9.5.1
Normale Schaltflächen (JButton) .............................................................................
676
9.5.2
Der aufmerksame ActionListener ...........................................................................
678
9.5.3
Schaltflächen-Ereignisse vom Typ ActionEvent .................................................
679
9.5.4
Basisklasse AbstractButton .......................................................................................
680
9.5.5
Wechselknopf (JToggleButton) ................................................................................
682
Textkomponenten ........................................................................................................................
683
9.6.1
Text in einer Eingabezeile .........................................................................................
684
9.6.2
Die Oberklasse der Text-Komponenten (JTextComponent) ..........................
685
9.6.3
Geschützte Eingaben (JPasswordField) ..................................................................
686
9.6.4
Validierende Eingabefelder (JFormattedTextField) ...........................................
687
9.6.5
Einfache mehrzeilige Textfelder (JTextArea) .......................................................
688
9.6.6
Editor-Klasse (JEditorPane) * .....................................................................................
692
17
Inhalt
9.7
Swing Action * ...............................................................................................................................
694
9.8
JComponent und Component als Basis aller Komponenten ............................................
697
9.9
9.8.1
Hinzufügen von Komponenten ..............................................................................
697
9.8.2
Tooltips (Kurzhinweise) .............................................................................................
698
9.8.3
Rahmen (Border) * .......................................................................................................
699
9.8.4
Fokus und Navigation * ..............................................................................................
701
9.8.5
Ereignisse jeder Komponente * ...............................................................................
702
9.8.6
Die Größe und Position einer Komponente * .....................................................
706
9.8.7
Komponenten-Ereignisse * .......................................................................................
707
9.8.8
UI-Delegate – der wahre Zeichner * ........................................................................
708
9.8.9
Undurchsichtige (opake) Komponente * ..............................................................
711
9.8.10
Properties und Listener für Änderungen * ..........................................................
711
Container ........................................................................................................................................
711
9.9.1
Standardcontainer (JPanel) .......................................................................................
712
9.9.2
Bereich mit automatischen Rollbalken (JScrollPane) .......................................
713
9.9.3
Reiter (JTabbedPane) ...................................................................................................
714
9.9.4
Teilungskomponente (JSplitPane) ..........................................................................
715
9.10 Alles Auslegungssache: die Layoutmanager ........................................................................
716
9.10.1
Übersicht über Layoutmanager ..............................................................................
717
9.10.2
Zuweisen eines Layoutmanagers ...........................................................................
717
9.10.3
Im Fluss mit FlowLayout ...........................................................................................
718
9.10.4
BoxLayout ......................................................................................................................
720
9.10.5
Mit BorderLayout in alle Himmelsrichtungen ...................................................
721
9.10.6
Rasteranordnung mit GridLayout ..........................................................................
724
9.10.7
Der GridBagLayoutmanager * ..................................................................................
725
9.10.8
Null-Layout * .................................................................................................................
731
9.10.9
Weitere Layoutmanager ............................................................................................
732
9.11 Rollbalken und Schieberegler ...................................................................................................
733
9.11.1
Schieberegler (JSlider) ................................................................................................
733
9.11.2
Rollbalken (JScrollBar) * .............................................................................................
734
9.12 Kontrollfelder, Optionsfelder, Kontrollfeldgruppen ..........................................................
Kontrollfelder (JCheckBox) .......................................................................................
740
9.12.2
ItemSelectable, ItemListener und das ItemEvent .............................................
741
9.12.3
Sich gegenseitig ausschließende Optionen (JRadioButton) ...........................
743
9.13 Fortschritte bei Operationen überwachen * .........................................................................
18
739
9.12.1
745
9.13.1
Fortschrittsbalken (JProgressBar) ...........................................................................
745
9.13.2
Dialog mit Fortschrittsanzeige (ProgressMonitor) ...........................................
748
Inhalt
9.14 Menüs und Symbolleisten ..........................................................................................................
9.14.1
Die Menüleisten und die Einträge ..........................................................................
748
748
9.14.2
Menüeinträge definieren ...........................................................................................
750
9.14.3
Einträge durch Action-Objekte beschreiben ........................................................
751
9.14.4
Mit der Tastatur: Mnemonics und Shortcut ........................................................
752
9.14.5
Der Tastatur-Shortcut (Accelerator) .......................................................................
753
9.14.6
Tastenkürzel (Mnemonics) ........................................................................................
755
9.14.7
Symbolleisten alias Toolbars ....................................................................................
756
9.14.8
Popup-Menüs ................................................................................................................
759
9.14.9
System-Tray nutzen * ..................................................................................................
764
9.15 Das Model-View-Controller-Konzept ......................................................................................
765
9.16 Auswahlmenüs, Listen und Spinner .........................................................................................
767
9.16.1
Listen (JList) ....................................................................................................................
767
9.16.2
Auswahlmenü (JComboBox) .....................................................................................
775
9.16.3
Drehfeld (JSpinner) * ....................................................................................................
787
9.16.4
Datumsauswahl * ..........................................................................................................
789
9.17 Tabellen (JTable) ............................................................................................................................
9.17.1
789
Ein eigenes Tabellen-Model ......................................................................................
791
9.17.2
Basisklasse für eigene Modelle (AbstractTableModel) .....................................
792
9.17.3
Ein vorgefertigtes Standard-Modell (DefaultTableModel) ..............................
796
9.17.4
Ein eigener Renderer für Tabellen ..........................................................................
798
9.17.5
Zell-Editoren ..................................................................................................................
801
9.17.6
Größe und Umrandung der Zellen * .......................................................................
803
9.17.7
Spalteninformationen * .............................................................................................
803
9.17.8
Tabellenkopf von Swing-Tabellen * ........................................................................
804
9.17.9
Selektionen einer Tabelle * ........................................................................................
805
9.17.10 Automatisches Sortieren und Filtern mit RowSorter * ....................................
806
9.18 Bäume (JTree) .................................................................................................................................
809
9.18.1
JTree und sein TreeModel und TreeNode .............................................................
809
9.18.2
Selektionen bemerken ................................................................................................
811
9.18.3
Das TreeModel von JTree * .........................................................................................
811
9.19 JRootPane und JDesktopPane * .................................................................................................
815
9.19.1
Wurzelkomponente der Top-Level-Komponenten (JRootPane) ...................
815
9.19.2
JDesktopPane und die Kinder von JInternalFrame ...........................................
815
9.19.3
JLayeredPane .................................................................................................................
817
9.20 Dialoge und Window-Objekte ...................................................................................................
818
9.20.1
JWindow und JDialog ..................................................................................................
818
19
Inhalt
9.20.2
Modal oder nicht-modal? ..........................................................................................
819
9.20.3
Standarddialoge mit JOptionPane .........................................................................
820
9.20.4
Der Dateiauswahldialog ............................................................................................
823
9.20.5
Der Farbauswahldialog JColorChooser * ...............................................................
827
9.21 Flexibles Java-Look-and-Feel ....................................................................................................
830
9.21.1
Look and Feel global setzen ......................................................................................
830
9.21.2
UIManager .....................................................................................................................
830
9.21.3
Die Windows-Optik mit JGoodies Looks verbessern * .....................................
833
9.22 Swing-Komponenten neu erstellen oder verändern * .......................................................
833
9.22.1
Überlagerungen mit dem Swing-Komponenten-Dekorator JLayer ............
834
9.23 Die Zwischenablage (Clipboard) ...............................................................................................
836
9.23.1
Clipboard-Objekte .......................................................................................................
836
9.23.2
Mit Transferable auf den Inhalt zugreifen ...........................................................
837
9.23.3
DataFlavor ist das Format der Daten in der Zwischenablage ........................
838
9.23.4
Einfügungen in der Zwischenablage erkennen ..................................................
840
9.23.5
Drag & Drop ...................................................................................................................
841
9.24 Undo durchführen * .....................................................................................................................
842
9.25 AWT, Swing und die Threads .....................................................................................................
844
9.25.1
Ereignisschlange (EventQueue) und AWT-Event-Thread ................................
844
9.25.2
Swing ist nicht thread-sicher ...................................................................................
845
9.25.3
invokeLater() und invokeAndWait() ......................................................................
848
9.25.4
SwingWorker .................................................................................................................
851
9.25.5
Eigene Ereignisse in die Queue setzen * ...............................................................
853
9.25.6
Auf alle Ereignisse hören * ........................................................................................
854
9.26 Barrierefreiheit mit der Java Accessibility API .....................................................................
854
9.27 Zeitliches Ausführen mit dem javax.swing.Timer ..............................................................
855
9.28 Die Zusatzkomponentenbibliothek SwingX .........................................................................
856
9.28.1
Im Angebot: Erweiterte und neue Swing-Komponenten ...............................
857
9.28.2
Überblick über erweiterte Standard-Swing-Klassen .........................................
857
9.28.3
Neue Swing-Klassen ....................................................................................................
858
9.28.4
Weitere SwingX-Klassen ............................................................................................
859
9.28.5
SwingX-Installation ....................................................................................................
860
9.29 Alternativen zu programmierten Oberflächen, AWT und Swing * .................................
860
9.29.1
Deklarative Beschreibungen der Oberfläche: Swing JavaBuilder, Swixml
860
9.29.2
SWT (Standard Widget Toolkit) ...............................................................................
862
9.30 Zum Weiterlesen ..........................................................................................................................
864
20
Inhalt
10 Grafikprogrammierung
10.1 Grundlegendes zum Zeichnen .................................................................................................
865
10.1.1
Die paint()-Methode für das AWT-Frame ............................................................
865
10.1.2
Zeichnen von Inhalten auf ein JFrame ................................................................
867
10.1.3
Auffordern zum Neuzeichnen mit repaint() ......................................................
869
10.1.4
Java 2D-API ...................................................................................................................
869
10.2 Einfache Zeichenmethoden ......................................................................................................
870
10.2.1
Linien .............................................................................................................................
870
10.2.2
Rechtecke ......................................................................................................................
871
10.2.3
Ovale und Kreisbögen ...............................................................................................
872
10.2.4
Polygone und Polylines ............................................................................................
874
10.3 Zeichenketten schreiben und Fonts .......................................................................................
876
10.3.1
Zeichenfolgen schreiben ..........................................................................................
877
10.3.2
Die Font-Klasse ...........................................................................................................
878
10.3.3
Einen neuen Font aus einem gegebenen Font ableiten .................................
880
10.3.4
Zeichensätze des Systems ermitteln * .................................................................
880
10.3.5
Neue TrueType-Fonts in Java nutzen ...................................................................
881
10.3.6
Font-Metadaten durch FontMetrics * ..................................................................
882
10.4 Geometrische Objekte ...............................................................................................................
886
10.4.1
Die Schnittstelle Shape .............................................................................................
888
10.4.2
Kreisförmiges ..............................................................................................................
889
10.4.3
Kurviges * ......................................................................................................................
890
10.4.4
Area und die konstruktive Flächengeometrie * ................................................
890
10.4.5
Pfade * ............................................................................................................................
891
10.4.6
Punkt in einer Form, Schnitt von Linien, Abstand Punkt/Linie * ...............
895
10.5 Das Innere und Äußere einer Form ........................................................................................
10.5.1
Farben und die Paint-Schnittstelle .......................................................................
896
896
10.5.2
Farben mit der Klasse Color ....................................................................................
897
10.5.3
Die Farben des Systems über SystemColor * .....................................................
903
10.5.4
Composite und Xor * .................................................................................................
907
10.5.5
Dicke und Art der Linien von Formen bestimmen über Stroke * ...............
908
10.6 Bilder ...............................................................................................................................................
913
10.6.1
Eine Übersicht über die Bilder-Bibliotheken .....................................................
914
10.6.2
Bilder mit ImageIO lesen .........................................................................................
915
10.6.3
Ein Bild zeichnen ........................................................................................................
917
10.6.4
Programm-Icon/Fenster-Icon setzen ...................................................................
921
21
Inhalt
10.6.5
Splash-Screen * ...........................................................................................................
922
10.6.6
Bilder im Speicher erzeugen * ................................................................................
922
10.6.7
Pixel für Pixel auslesen und schreiben * ............................................................
925
10.6.8
Bilder skalieren * ........................................................................................................
927
10.6.9
Schreiben mit ImageIO ............................................................................................
929
10.6.10 Asynchrones Laden mit getImage() und dem MediaTracker * ....................
934
10.7 Weitere Eigenschaften von Graphics * .................................................................................
935
10.7.1
Eine Kopie von Graphics erstellen .......................................................................
10.7.2
Koordinatensystem verschieben .........................................................................
936
10.7.3
Beschnitt (Clipping) ..................................................................................................
937
10.7.4
Zeichenhinweise durch RenderingHints ...........................................................
941
10.7.5
Transformationen mit einem AffineTransform-Objekt ...............................
941
10.8 Drucken * .......................................................................................................................................
935
944
10.8.1
Drucken der Inhalte ..................................................................................................
944
10.8.2
Bekannte Drucker ......................................................................................................
946
10.9 Benutzerinteraktionen automatisieren, Robot und Screenshots * ..............................
947
10.9.1
Der Roboter .................................................................................................................
947
10.9.2
Automatisch in die Tasten hauen ........................................................................
948
10.9.3
Automatisierte Mausoperationen .......................................................................
949
10.9.4
Methoden zur Zeitsteuerung .................................................................................
949
10.9.5
Bildschirmabzüge (Screenshots) ...........................................................................
950
10.9.6
Funktionsweise und Beschränkungen ................................................................
952
10.9.7
MouseInfo und PointerInfo ...................................................................................
952
10.10 Zum Weiterlesen ........................................................................................................................
953
11 Netzwerkprogrammierung
11.1 Grundlegende Begriffe .............................................................................................................
955
11.2 URI und URL ..................................................................................................................................
957
11.2.1
Die Klasse URI .............................................................................................................
11.2.2
Die Klasse URL ............................................................................................................
958
11.2.3
Informationen über eine URL * .............................................................................
961
11.2.4
Der Zugriff auf die Daten über die Klasse URL .................................................
963
11.3 Die Klasse URLConnection * .....................................................................................................
965
22
957
11.3.1
Methoden und Anwendung von URLConnection ...........................................
965
11.3.2
Protokoll- und Content-Handler ..........................................................................
967
Inhalt
11.3.3
Im Detail: vom URL zur URLConnection ............................................................
968
11.3.4
Der Protokoll-Handler für Jar-Dateien ................................................................
969
11.3.5
Basic Authentication und Proxy-Authentifizierung .......................................
971
11.4 Mit GET und POST Daten übergeben * ..................................................................................
973
11.4.1
Kodieren der Parameter für Serverprogramme ...............................................
974
11.4.2
Eine Suchmaschine mit GET-Request ansprechen ..........................................
975
11.4.3
POST-Request absenden ...........................................................................................
976
11.5 Host- und IP-Adressen ...............................................................................................................
977
11.5.1
Lebt der Rechner? .......................................................................................................
980
11.5.2
IP-Adresse des lokalen Hosts ..................................................................................
980
11.5.3
Das Netz ist klasse ......................................................................................................
981
11.5.4
NetworkInterface .......................................................................................................
981
11.6 Mit dem Socket zum Server ......................................................................................................
983
11.6.1
Das Netzwerk ist der Computer .............................................................................
983
11.6.2
Sockets ...........................................................................................................................
983
11.6.3
Eine Verbindung zum Server aufbauen ..............................................................
984
11.6.4
Server unter Spannung: die Ströme .....................................................................
985
11.6.5
Die Verbindung wieder abbauen ...........................................................................
986
11.6.6
Informationen über den Socket * ..........................................................................
986
11.6.7
Reine Verbindungsdaten über SocketAddress * ...............................................
988
11.7 Client-Server-Kommunikation ................................................................................................
989
11.7.1
Warten auf Verbindungen .......................................................................................
990
11.7.2
Ein Multiplikationsserver ........................................................................................
991
11.7.3
Blockierendes Lesen ..................................................................................................
995
11.7.4
Von außen erreichbar sein * ...................................................................................
996
11.8 Apache HttpComponents und Commons Net * ..................................................................
997
11.8.1
HttpComponents .......................................................................................................
997
11.8.2
Apache Commons Net ..............................................................................................
998
11.9 Arbeitsweise eines Webservers * ............................................................................................
998
11.9.1
Das Hypertext Transfer Protocol (HTTP) ............................................................
998
11.9.2
Anfragen an den Server ............................................................................................
999
11.9.3
Die Antworten vom Server ...................................................................................... 1002
11.9.4
Webserver mit com.sun.net.httpserver.HttpServer ........................................ 1006
11.10 Verbindungen durch einen Proxy-Server * .......................................................................... 1007
11.10.1 System-Properties ...................................................................................................... 1008
11.10.2 Verbindungen durch die Proxy-API ..................................................................... 1008
23
Inhalt
11.11 Datagram-Sockets * ...................................................................................................................
1010
11.11.1 Die Klasse DatagramSocket ....................................................................................
1012
11.11.2 Datagramme und die Klasse DatagramPacket .................................................
1013
11.11.3 Auf ein hereinkommendes Paket warten ..........................................................
1014
11.11.4 Ein Paket zum Senden vorbereiten ......................................................................
1015
11.11.5 Methoden der Klasse DatagramPacket ...............................................................
1016
11.11.6 Das Paket senden .......................................................................................................
1017
11.12 E-Mail * ..........................................................................................................................................
1019
11.12.1 Wie eine E-Mail um die Welt geht ........................................................................
1019
11.12.2 Das Simple Mail Transfer Protocol und RFC 822 .............................................
1019
11.12.3 POP (Post Office Protocol) .......................................................................................
1020
11.12.4 Die JavaMail API .........................................................................................................
1020
11.12.5 E-Mails mittels POP3 abrufen ................................................................................
1023
11.12.6 Multipart-Nachrichten verarbeiten .....................................................................
1025
11.12.7 E-Mails versenden .....................................................................................................
1027
11.12.8 Ereignisse und Suchen .............................................................................................
1030
11.13 Tiefer liegende Netzwerkeigenschaften * ...........................................................................
1031
11.13.1 Internet Control Message Protocol (ICMP) ........................................................
1031
11.13.2 MAC-Adresse ...............................................................................................................
1032
11.14 Zum Weiterlesen ........................................................................................................................
1033
12 Verteilte Programmierung mit RMI
12.1 Entfernte Objekte und Methoden .........................................................................................
1035
12.1.1
Stellvertreter helfen bei entfernten Methodenaufrufen ..............................
1035
12.1.2
Standards für entfernte Objekte ...........................................................................
1037
12.2 Java Remote Method Invocation ...........................................................................................
1038
12.2.1
Zusammenspiel von Server, Registry und Client ............................................
1038
12.2.2
Wie die Stellvertreter die Daten übertragen .....................................................
1038
12.2.3
Probleme mit entfernten Methoden ...................................................................
1039
12.2.4
Nutzen von RMI bei Middleware-Lösungen ......................................................
1040
12.2.5
Zentrale Klassen und Schnittstellen ....................................................................
1041
12.2.6
Entfernte und lokale Objekte im Vergleich .......................................................
1042
12.3 Auf der Serverseite .....................................................................................................................
1042
24
12.3.1
Entfernte Schnittstelle deklarieren ......................................................................
1042
12.3.2
Remote-Objekt-Implementierung .......................................................................
1043
Inhalt
12.3.3
Stellvertreterobjekte ................................................................................................. 1044
12.3.4
Der Namensdienst (Registry) .................................................................................. 1045
12.3.5
Remote-Objekt-Implementierung exportieren und beim
Namensdienst anmelden ........................................................................................ 1047
12.3.6
Einfaches Logging ...................................................................................................... 1049
12.3.7
Aufräumen mit dem DGC * ..................................................................................... 1050
12.4 Auf der Clientseite ...................................................................................................................... 1051
12.5 Entfernte Objekte übergeben und laden ............................................................................. 1052
12.5.1
Klassen vom RMI-Klassenlader nachladen ........................................................ 1052
12.6 Weitere Eigenschaften von RMI .............................................................................................. 1053
12.6.1
RMI und CORBA .......................................................................................................... 1053
12.6.2
RMI über HTTP getunnelt ........................................................................................ 1054
12.6.3
Automatische Remote-Objekt-Aktivierung ....................................................... 1054
12.7 Java Message Service (JMS) ...................................................................................................... 1055
12.8 Zum Weiterlesen ......................................................................................................................... 1055
13 RESTful und SOAP Web-Services
13.1 Web-Services ................................................................................................................................ 1057
13.2 RESTful Web-Services ................................................................................................................. 1059
13.2.1
Aus Prinzip REST ......................................................................................................... 1059
13.2.2
Jersey .............................................................................................................................. 1060
13.2.3
JAX-RS-Annotationen für den ersten REST-Service ......................................... 1061
13.2.4
Test-Server starten ..................................................................................................... 1062
13.2.5
REST-Services konsumieren .................................................................................... 1063
13.2.6
Content-Hander, Marshaller und verschiedene MIME-Typen ..................... 1064
13.2.7
REST-Parameter .......................................................................................................... 1067
13.2.8
REST-Services mit Parametern über die Jersey-Client-API aufrufen .......... 1069
13.2.9
PUT-Anforderungen und das Senden von Daten ............................................. 1070
13.2.10 PUT/POST/DELETE-Sendungen mit der Jersey-Client-API absetzen .......... 1071
13.3 Daily Soap und das SOAP-Protokoll ....................................................................................... 1071
13.3.1
Die technische Realisierung .................................................................................... 1072
13.3.2
Web-Service-APIs und Implementierungen ...................................................... 1072
13.3.3
@WebService in Java 6 ............................................................................................. 1073
13.3.4
Einen Web-Service definieren ................................................................................ 1074
25
Inhalt
13.3.5
Web-Services veröffentlichen ................................................................................
1075
13.3.6
Einen JAX-WS-Client implementieren ................................................................
1076
13.4 Zum Weiterlesen ........................................................................................................................
1078
14 JavaServer Pages und Servlets
14.1 Dynamisch generierte Webseiten .........................................................................................
1079
14.1.1
Was sind Servlets? .....................................................................................................
1080
14.1.2
Was sind JavaServer Pages? ....................................................................................
1081
14.2 Servlets und JSPs mit Tomcat entwickeln ...........................................................................
1082
14.2.1
Servlet-Container .......................................................................................................
1082
14.2.2
Entwicklung der Servlet/JSP-Spezifikationen ...................................................
1083
14.2.3
Webserver mit Servlet-Funktionalität ................................................................
1083
14.2.4
Tomcat installieren ...................................................................................................
1084
14.2.5
Ablageort für eigene JSPs ........................................................................................
1086
14.2.6
Webapplikationen .....................................................................................................
1087
14.2.7
Zuordnung von Webapplikationen zu physikalischen Verzeichnissen ...
1088
14.2.8
Web-Projekt mit Eclipse IDE for Java EE Developers ......................................
1088
14.3 Statisches und Dynamisches ...................................................................................................
1090
14.3.1
Statischer Template-Code .......................................................................................
1090
14.3.2
Dynamische Inhalte ..................................................................................................
1090
14.3.3
Kommentare ...............................................................................................................
1091
14.4 Die Expression Language (EL) ..................................................................................................
1091
14.4.1
Operatoren der EL ......................................................................................................
1092
14.4.2
Literale ..........................................................................................................................
1092
14.4.3
Implizite EL-Objekte .................................................................................................
1093
14.5 Formulardaten .............................................................................................................................
1094
14.5.1
Einen Parameter auslesen ......................................................................................
1094
14.5.2
HTML-Formulare .......................................................................................................
1095
14.6 Auf Beans zurückgreifen ..........................................................................................................
1096
14.6.1
26
Beans in JSPs anlegen ...............................................................................................
1097
14.6.2
Properties einer Bean im EL-Ausdruck erfragen ..............................................
1097
14.6.3
Properties mit <jsp:setProperty> setzen ............................................................
1097
14.6.4
Bean-Klasse zum Testen von E-Mail-Adressen .................................................
1098
14.6.5
Parameterwerte in Bean übertragen ...................................................................
1100
Inhalt
14.7 JSP-Tag-Libraries .......................................................................................................................... 1101
14.7.1
Standard Tag Library (JSTL) ..................................................................................... 1101
14.8 Skripting-Elemente in JSPs ....................................................................................................... 1105
14.8.1
Scriptlets ....................................................................................................................... 1106
14.8.2
JSP-Ausdrücke ............................................................................................................. 1106
14.8.3
JSP-Deklarationen ...................................................................................................... 1107
14.8.4
Quoting .......................................................................................................................... 1107
14.8.5
Entsprechende XML-Tags ........................................................................................ 1108
14.8.6
Implizite Objekte für Scriptlets und JSP-Ausdrücke ........................................ 1108
14.9 Sitzungsverfolgung (Session Tracking) ................................................................................. 1109
14.9.1
Lösungen für die Sitzungsverfolgung .................................................................. 1109
14.9.2
Sitzungen in JSPs ........................................................................................................ 1110
14.9.3
Auf Session-Dateien zurückgreifen ...................................................................... 1111
14.10 Servlets ........................................................................................................................................... 1111
14.10.1 Servlets compilieren ................................................................................................. 1115
14.10.2 Servlet-Mapping ......................................................................................................... 1116
14.10.3 Der Lebenszyklus eines Servlets ............................................................................ 1117
14.10.4 Mehrere Anfragen beim Servlet und die Thread-Sicherheit ......................... 1118
14.10.5 Servlets und Sessions ................................................................................................ 1118
14.10.6 Weiterleiten und Einbinden von Servlet-Inhalten .......................................... 1119
14.11 Zum Weiterlesen ......................................................................................................................... 1120
15 Applets
15.1 Applets in der Wiege von Java ................................................................................................ 1123
15.1.1
Applets heute ............................................................................................................... 1123
15.1.2
(J)Applet und Applikationen ................................................................................... 1124
15.1.3
Das erste Hallo-Applet .............................................................................................. 1125
15.2 Die Applet-API .............................................................................................................................. 1127
15.2.1
Die Zyklen eines Applets .......................................................................................... 1127
15.2.2
Parameter an das Applet übergeben .................................................................... 1127
15.2.3
Wie das Applet den Browser-Inhalt ändern kann * .......................................... 1129
15.2.4
Den Ursprung des Applets erfragen ..................................................................... 1130
15.2.5
Datenaustausch zwischen Applets * ..................................................................... 1131
15.2.6
Was ein Applet alles darf * ....................................................................................... 1134
27
Inhalt
15.2.7
Ist Java im Browser aktiviert? * ..............................................................................
1135
15.2.8
Applet unter Firefox (Netscape) oder Microsoft Internet Explorer? * .......
1135
15.3 Webstart .......................................................................................................................................
1137
15.4 Zum Weiterlesen ........................................................................................................................
1137
16 Datenbankmanagement mit JDBC
16.1 Relationale Datenbanken ........................................................................................................
16.1.1
1139
Das relationale Modell .............................................................................................
1139
16.2 Datenbanken und Tools ............................................................................................................
1140
16.2.1
HSQLDB .........................................................................................................................
1141
16.2.2
Weitere Datenbanken * ............................................................................................
1142
16.2.3
Eclipse-Plugins zum Durchschauen von Datenbanken .................................
1145
16.3 JDBC und Datenbanktreiber ....................................................................................................
1148
16.3.1
Treibertypen * .............................................................................................................
1149
16.3.2
JDBC-Versionen * .......................................................................................................
1151
16.4 Eine Beispielabfrage ..................................................................................................................
1152
16.4.1
Schritte zur Datenbankabfrage .............................................................................
1152
16.4.2
Ein Client für die HSQLDB-Datenbank ................................................................
1153
16.4.3
Datenbankbrowser und eine Beispielabfrage unter NetBeans ...................
1155
16.5 Mit Java an eine Datenbank andocken ................................................................................
1159
16.5.1
Der Treiber-Manager * ..............................................................................................
1160
16.5.2
Den Treiber laden ......................................................................................................
1160
16.5.3
Eine Aufzählung aller Treiber * ..............................................................................
1162
16.5.4
Log-Informationen * .................................................................................................
1162
16.5.5
Verbindung zur Datenbank auf- und abbauen ................................................
1163
16.6 Datenbankabfragen ...................................................................................................................
1167
28
16.6.1
Abfragen über das Statement-Objekt ..................................................................
1168
16.6.2
Ergebnisse einer Abfrage in ResultSet ................................................................
1169
16.6.3
Java und SQL-Datentypen .......................................................................................
1170
16.6.4
Date, Time und Timestamp ....................................................................................
1173
16.6.5
Unicode in der Spalte korrekt auslesen ..............................................................
1175
16.6.6
Eine SQL-NULL und wasNull() bei ResultSet ......................................................
1175
16.6.7
Wie viele Zeilen hat ein ResultSet? * ....................................................................
1176
Inhalt
16.7 Elemente einer Datenbank hinzufügen und aktualisieren ............................................. 1176
16.7.1
Batch-Updates ............................................................................................................. 1177
16.7.2
Die Ausnahmen bei JDBC, SQLException und Unterklassen ........................ 1179
16.8 ResultSet und RowSet * ............................................................................................................. 1182
16.8.1
Die Schnittstelle RowSet .......................................................................................... 1182
16.8.2
Implementierungen von RowSet .......................................................................... 1182
16.8.3
Der Typ CachedRowSet ............................................................................................. 1183
16.8.4
Der Typ WebRowSet .................................................................................................. 1184
16.9 Vorbereitete Anweisungen (Prepared Statements) .......................................................... 1187
16.9.1
PreparedStatement-Objekte vorbereiten ........................................................... 1187
16.9.2
Werte für die Platzhalter eines PreparedStatement ........................................ 1189
16.10 Transaktionen .............................................................................................................................. 1190
16.11 Metadaten * .................................................................................................................................. 1190
16.11.1 Metadaten über die Tabelle ..................................................................................... 1190
16.11.2 Informationen über die Datenbank ..................................................................... 1194
16.12 Vorbereitete Datenbankverbindungen ................................................................................ 1195
16.12.1 DataSource ................................................................................................................... 1195
16.12.2 Gepoolte Verbindungen ........................................................................................... 1198
16.13 JPA-Beispiel mit der NetBeans-IDE ......................................................................................... 1199
16.13.1 Entity-Beans generieren ........................................................................................... 1199
16.13.2 Die Quellen im Überblick ......................................................................................... 1201
16.13.3 Persistence Unit .......................................................................................................... 1203
16.13.4 Ein JPA-Beispielprogramm ...................................................................................... 1204
16.14 Zum Weiterlesen ......................................................................................................................... 1205
17 Technologien für die Infrastruktur
17.1 Property-Validierung durch Bean Validation ...................................................................... 1207
17.1.1
Technische Abhängigkeiten und POJOs .............................................................. 1218
17.2 Wie eine Implementierung an die richtige Stelle kommt ............................................... 1220
17.2.1
Arbeiten mit dem ServiceLoader ........................................................................... 1221
17.2.2
Die Utility-Klasse Lookup als ServiceLoader-Fassade ..................................... 1223
17.2.3
Contexts and Dependency Injection (CDI) aus dem JSR-299 ........................ 1224
17.3 Zum Weiterlesen ......................................................................................................................... 1226
29
Inhalt
18 Reflection und Annotationen
18.1 Metadaten ....................................................................................................................................
18.1.1
Metadaten durch JavaDoc-Tags .............................................................................
18.2 Metadaten der Klassen mit dem Class-Objekt ...................................................................
1227
1227
1228
18.2.1
An ein Class-Objekt kommen ................................................................................
1228
18.2.2
Was das Class-Objekt beschreibt * ........................................................................
1231
18.2.3
Der Name der Klasse .................................................................................................
1233
18.2.4
instanceof mit Class-Objekten * ............................................................................
1235
18.2.5
Oberklassen finden * .................................................................................................
1236
18.2.6
Implementierte Interfaces einer Klasse oder eines Interfaces * .................
1237
18.2.7
Modifizierer und die Klasse Modifier * ...............................................................
1238
18.2.8
Die Arbeit auf dem Feld * .........................................................................................
1240
18.3 Attribute, Methoden und Konstruktoren ............................................................................
1241
18.3.1
Reflections – Gespür für die Attribute einer Klasse ........................................
1243
18.3.2
Methoden einer Klasse erfragen ...........................................................................
1246
18.3.3
Properties einer Bean erfragen .............................................................................
1250
18.3.4
Konstruktoren einer Klasse ....................................................................................
1250
18.3.5
Annotationen ..............................................................................................................
1253
18.4 Objekte erzeugen und manipulieren ....................................................................................
1253
18.4.1
Objekte erzeugen .......................................................................................................
1253
18.4.2
Die Belegung der Variablen erfragen ..................................................................
1255
18.4.3
Eine generische eigene toString()-Methode * ...................................................
1257
18.4.4
Variablen setzen .........................................................................................................
1260
18.4.5
Bean-Zustände kopieren * .......................................................................................
1262
18.4.6
Private Attribute ändern .........................................................................................
1262
18.4.7
Methoden aufrufen ...................................................................................................
1263
18.4.8
Statische Methoden aufrufen ................................................................................
1265
18.4.9
Dynamische Methodenaufrufe bei festen Methoden beschleunigen * ....
1266
18.5 Eigene Annotationstypen * ......................................................................................................
1268
30
18.5.1
Annotationen zum Laden von Ressourcen .......................................................
1268
18.5.2
Neue Annotationen deklarieren ...........................................................................
1269
18.5.3
Annotationen mit genau einem Attribut ..........................................................
1270
18.5.4
Element-Werte-Paare (Attribute) hinzufügen ..................................................
1271
18.5.5
Annotationsattribute vom Typ einer Aufzählung ..........................................
1272
Inhalt
18.5.6
Felder von Annotationsattributen ....................................................................... 1273
18.5.7
Vorbelegte Attribute ................................................................................................. 1274
18.5.8
Annotieren von Annotationstypen ...................................................................... 1276
18.5.9
Deklarationen für unsere Ressourcen-Annotationen .................................... 1280
18.5.10 Annotierte Elemente auslesen ............................................................................... 1282
18.5.11 Auf die Annotationsattribute zugreifen ............................................................. 1283
18.5.12 Komplettbeispiel zum Initialisieren von Ressourcen .................................... 1284
18.5.13 Mögliche Nachteile von Annotationen ............................................................... 1287
18.6 Zum Weiterlesen ......................................................................................................................... 1288
19 Dynamische Übersetzung und Skriptsprachen
19.1 Codegenerierung ......................................................................................................................... 1290
19.1.1
Generierung von Java-Quellcode .......................................................................... 1291
19.1.2
Codetransformationen ............................................................................................. 1294
19.1.3
Erstellen von Java-Bytecode .................................................................................... 1294
19.2 Programme mit der Compiler API übersetzen .................................................................... 1295
19.2.1
Java Compiler API ....................................................................................................... 1295
19.2.2
Fehler-Diagnose .......................................................................................................... 1298
19.2.3
Eine im String angegebene Compiliationseinheit übersetzen .................... 1300
19.2.4
Wenn Quelle und Ziel der Speicher sind ............................................................. 1302
19.3 Ausführen von Skripten ............................................................................................................ 1306
19.3.1
JavaScript-Programme ausführen ........................................................................ 1306
19.3.2
Groovy ........................................................................................................................... 1308
19.4 Zum Weiterlesen ......................................................................................................................... 1314
20 Logging und Monitoring
20.1 Logging mit Java .......................................................................................................................... 1315
20.1.1
Logging-APIs ................................................................................................................ 1315
20.1.2
Logging mit java.util.logging .................................................................................. 1316
20.1.3
Logging mit log4j * ..................................................................................................... 1320
20.1.4
Die Simple Logging Facade ...................................................................................... 1323
20.2 Systemzustände überwachen .................................................................................................. 1324
31
Inhalt
20.3 MBean-Typen, MBean-Server und weitere Begriffe .........................................................
20.3.1
1325
MXBeans des Systems ..............................................................................................
1325
20.4 Geschwätzige Programme und JConsole .............................................................................
1328
20.4.1
JConsole ........................................................................................................................
1328
20.5 Der MBeanServer ........................................................................................................................
1330
20.6 Eine eigene Standard-MBean ..................................................................................................
1331
20.6.1
Management-Schnittstelle .....................................................................................
1332
20.6.2
Implementierung der Managed-Ressource .......................................................
1332
20.6.3
Anmeldung beim Server .........................................................................................
1333
20.6.4
Eine eigene Bean in JConsole einbringen ..........................................................
1333
20.7 Zum Weiterlesen ........................................................................................................................
1336
21 Java Native Interface (JNI)
21.1 Java Native Interface und Invocation-API ...........................................................................
21.2 Eine C-Funktion in ein Java-Programm einbinden ............................................................
21.2.1
Den Java-Code schreiben .........................................................................................
21.3 Dynamische Bibliotheken erzeugen .....................................................................................
21.3.1
1337
1338
1338
1340
Die Header-Datei erzeugen .....................................................................................
1340
21.3.2
Implementierung der Funktion in C ...................................................................
1342
21.3.3
Die C-Programme übersetzen und die dynamische Bibliothek
überzeugen ..................................................................................................................
1343
21.4 Nativ die Stringlänge ermitteln .............................................................................................
1345
21.5 Erweiterte JNI-Eigenschaften ..................................................................................................
1347
21.5.1
Klassendefinitionen .................................................................................................
1347
21.5.2
Zugriff auf Attribute .................................................................................................
1348
21.5.3
Methoden aufrufen ...................................................................................................
1350
21.5.4
Threads und Synchronisation ...............................................................................
1352
21.6 Einfache Anbindung von existierenden Bibliotheken .....................................................
1352
21.6.1
Generieren von JNI-Wrappern aus C++-Klassen und C-Headern ................
1352
21.6.2
COM-Schnittstellen anzapfen ................................................................................
1353
21.7 Invocation-API .............................................................................................................................
1353
21.8 Zum Weiterlesen ........................................................................................................................
1354
32
Inhalt
22 Sicherheitskonzepte
22.1 Zentrale Elemente der Java-Sicherheit ................................................................................. 1355
22.1.1
Security-API der Java SE ............................................................................................ 1355
22.1.2
Cryptographic Service Providers ........................................................................... 1356
22.2 Der Sandkasten (Sandbox) ....................................................................................................... 1357
22.3 Sicherheitsmanager (Security Manager) .............................................................................. 1358
22.3.1
Der Sicherheitsmanager bei Applets .................................................................... 1359
22.3.2
Sicherheitsmanager aktivieren .............................................................................. 1361
22.3.3
Rechte durch Policy-Dateien vergeben ............................................................... 1363
22.3.4
Erstellen von Rechtedateien mit dem grafischen Policy-Tool ..................... 1365
22.3.5
Kritik an den Policies ................................................................................................ 1366
22.4 Signierung ..................................................................................................................................... 1368
22.4.1
Warum signieren? ...................................................................................................... 1368
22.4.2
Digitale Ausweise und die Zertifizierungsstelle ............................................... 1368
22.4.3
Mit keytool Schlüssel erzeugen ............................................................................. 1369
22.4.4
Signieren mit jarsigner ............................................................................................. 1370
22.5 Digitale Unterschriften * ........................................................................................................... 1371
22.5.1
Die MDx-Reihe ............................................................................................................ 1371
22.5.2
Secure Hash Algorithm (SHA) ................................................................................ 1372
22.5.3
Mit der Security-API einen Fingerabdruck berechnen ................................... 1372
22.5.4
Die Klasse MessageDigest ........................................................................................ 1373
22.6 Verschlüsseln von Daten(-strömen) * .................................................................................... 1375
22.6.1
Den Schlüssel, bitte .................................................................................................... 1375
22.6.2
Verschlüsseln mit Cipher ......................................................................................... 1377
22.6.3
Verschlüsseln von Datenströmen ......................................................................... 1377
22.7 Zum Weiterlesen ......................................................................................................................... 1379
23 Dienstprogramme für die Java-Umgebung
23.1 Programme des JDK .................................................................................................................... 1381
23.2 Monitoringprogramme vom JDK ............................................................................................ 1381
23.2.1
jps .................................................................................................................................... 1381
23.2.2
jstat ................................................................................................................................. 1382
23.2.3
jmap ................................................................................................................................ 1382
33
Inhalt
23.2.4
jstack ..............................................................................................................................
1383
23.2.5
VisualVM ......................................................................................................................
1385
23.3 Programmieren mit der Tools-API .........................................................................................
1390
23.3.1
Eigene Doclets .............................................................................................................
23.4 Ant ..................................................................................................................................................
1390
1393
23.4.1
Bezug und Installation von Ant ............................................................................
1393
23.4.2
Das Build-Skript build.xml .....................................................................................
1394
23.4.3
Build den Build ...........................................................................................................
1394
23.4.4
Properties .....................................................................................................................
1395
23.4.5
Externe und vordefinierte Properties .................................................................
1396
23.4.6
Weitere Ant-Tasks ......................................................................................................
1397
23.5 Disassembler, Decompiler und Obfuscator .........................................................................
1398
23.5.1
Der Diassembler javap .............................................................................................
1399
23.5.2
Decompiler ..................................................................................................................
1404
23.5.3
Obfuscatoren ...............................................................................................................
1406
23.6 Weitere Dienstprogramme ......................................................................................................
1408
23.6.1
Sourcecode Beautifier ..............................................................................................
1408
23.6.2
Java-Programme als Systemdienst ausführen .................................................
1409
23.7 Zum Weiterlesen ........................................................................................................................
1410
Index ............................................................................................................................................................
1411
34
Kapitel 1
1
Neues in Java 7
»Jede Lösung eines Problems ist ein neues Problem.«
– Johann Wolfgang von Goethe (1749–1832)
1.1
Sprachänderungen
Die folgenden Abschnitte stellen Sprachänderungen aus Java 7 vor.
1.1.1
Zahlen im Binärsystem schreiben
Die Literale für Ganzzahlen lassen sich in vier unterschiedlichen Stellenwertsystemen angeben. Das natürlichste ist das Dezimalsystem (auch Zehnersystem genannt), bei dem die Literale aus den Ziffern »0« bis »9« bestehen. Zusätzlich existieren Oktal- und Hexadezimalsysteme, und seit Java 7 die Binärschreibweise. Bis auf Dezimalzahlen beginnen die Zahlen in
anderen Formaten mit einem besonderen Präfix.
Präfix
Stellenwertsystem
Basis
Darstellung von 1
0b oder 0B
Binär
2
0b1 oder 0B1
0
Oktal
8
01
Kein
Dezimal
10
1
0x oder 0X
Hexadezimal
16
0x1 oder 0X1
Tabelle 1.1: Die Stellenwertsysteme und ihre Schreibweise
1.1.2 Unterstriche bei Ganzzahlen
Um eine Anzahl von Millisekunden in Tage zu konvertieren, muss einfach eine Division vorgenommen werden. Um Millisekunden in Sekunden umzurechnen, brauchen wir eine Division durch 1000, von Sekunden auf Minuten eine Division durch 60, von Minuten auf Stun-
41
1
Neues in Java 7
den eine Division durch 60, und die Stunden auf Tage bringt die letzte Division durch 24.
Schreiben wir das auf:
long millis = 10 * 24*60*60*1000L;
long days = millis / 86400000L;
System.out.println( days );
// 10
Eine Sache fällt bei der Zahl 86400000 auf: Besonders gut lesbar ist sie nicht. Die eine Lösung
ist, es erst gar nicht zu so einer Zahl kommen zu lassen und sie wie in der ersten Zeile durch
eine Reihe von Multiplikationen aufzubauen – mehr Laufzeit kostet das nicht, da dieser konstante Ausdruck zur Übersetzungszeit feststeht.
Die zweite Variante ist eine neue Schreibweise, die Java 7 einführt: Unterstriche in Zahlen. Anstatt ein numerisches Literal als 86400000 zu schreiben, ist in Java 7 auch Folgendes erlaubt:
long millis = 10 * 86_400_000L;
long days = millis / 86_400_000L;
System.out.println( days );
// 10
Die Unterstriche machen die 1000er-Blöcke gut sichtbar. Hilfreich ist die Schreibweise auch
bei Literalen in Binär- und Hexdarstellung, da die Unterstriche hier ebenfalls Blöcke absetzen
können.1
Beispiel
Unterstriche verdeutlichen Blöcke bei Binär- und Hexadezimalzahlen.
int i = 0b01101001_01001101_11100101_01011110;
long l = 0x7fff_ffff_ffff_ffffL;
Der Unterstrich darf in jedem Literal stehen, zwei aufeinanderfolgende Unterstriche sind aber
nicht erlaubt.
1.1.3 switch (String)
Seit Java 7 sind switch-Anweisungen auf String-Objekten möglich.
String input = javax.swing.JOptionPane.showInputDialog( "Eingabe" );
switch ( input.toLowerCase() )
1
42
Bei Umrechnungen zwischen Stunden, Minuten und so weiter hilft auch die Klasse TimeUnit mit einigen
statischen toXXX()-Methoden.
1.1
Sprachänderungen
{
1
case "kekse":
System.out.println( "Ich mag Keeeekse" );
break;
case "kuchen":
System.out.println( "Ich mag Kuchen" );
break;
case "scholokade":
case "lakritze":
System.out.println( "Hm. lecker" );
break;
default:
System.out.printf( "Kann man %s essen?", input );
}
Obwohl Zeichenkettenvergleiche nun möglich sind, fallen Überprüfungen auf reguläre Ausdrücke leider heraus, die insbesondere Skriptsprachen anbieten.
Wie auch beim switch mit Ganzzahlen können die Zeichenketten beim String-case-Zweig aus
finalen (also nicht änderbaren) Variablen stammen. Ist etwa String KEKSE = "kekse"; vordefiniert, ist case KEKSE: erlaubt.
1.1.4 Zusammenfassen gleicher catch-Blöcke mit dem multi-catch
Greift ein Programm auf Teile zurück, die scheitern können, so ergeben sich in komplexeren
Abläufen schnell Situationen, in denen unterschiedliche Ausnahmen auftreten können. Entwickler sollten versuchen, den Programmcode in einem try-Block durchzuschreiben, und
dann in catch-Blöcken auf alle möglichen Fehler zu reagieren, die den Block vom korrekten
Durchlaufen abgehalten haben.
Oftmals kommt es zu dem Phänomen, dass die aufgerufenen Programmteile unterschiedliche Ausnahmetypen auslösen, aber die Behandlung der Fehler gleich aussieht. Um Quellcodeduplizierung zu vermeiden, sollte der Programmcode zusammengefasst werden. Nehmen wir an, die Behandlung der Ausnahmen SQLException und IOException soll gleich sein.
Wir haben schon gesehen, dass ein catch(Exception e) keine gute Lösung ist und nie im Programmcode vorkommen sollte, denn dann würden auch andere Ausnahmen mitgefangen.
Zum Glück gibt es in Java 7 eine elegante Lösung.
43
1
Neues in Java 7
Multi-catch
Java 7 führt eine neue Schreibweise für catch-Anweisungen ein, um mehrere Ausnahmen auf
einmal aufzufangen; sie heißt multi-catch. In der abgewandelten Variante von catch steht
dann nicht mehr nur eine Ausnahme, sondern eine Sammlung von Ausnahmen, die ein »|«
trennt. Der Schrägstrich ist schon als Oder-Operator bekannt und wurde daher auch hier eingesetzt, denn die Ausnahmen sind ja auch als eine Oder-Verknüpfung zu verstehen. Die allgemeine Syntax ist:
try
{
...
}
catch ( E1 | E2 | ... | En exception )
Die Variable exception ist implizit final.
Um das multi-catch zu demonstrieren, nehmen wir ein Programm an, das eine Farbtabelle
einliest. Die Datei besteht aus mehreren Zeilen, wobei in jeder Zeile die erste Zahl einen Index
repräsentiert und die zweite Zahl den hexadezimalen RGB-Farbwert.
Listing 1.1: basiscolors.txt
0 000000
1 ff0000
8 00ff00
9 ffff00
Eine eigene Methode readColorTable() soll die Datei einlesen und ein int-Feld der Größe 256
als Rückgabe liefern, wobei an den in der Datei angegebeen Positionen jeweils die Farbwerte
eingetragen sind. Nicht belegte Positionen bleiben 0. Gibt es einen Ladefehler, soll die Rückgabe null sein und die Methode eine Meldung auf dem Fehlerausgabekanal ausgeben.
Das Einlesen soll die Scanner-Klasse übernehmen. Bei der Verarbeitung der Daten und der Füllung des Feldes sind diverse Fehler denkbar:
Þ IOException: Die Datei ist nicht vorhanden, oder während des Einlesens kommt es zu Pro-
blemen.
Þ InputMismatchException: Der Index oder die Hexadezimalzahl sind keine Zahlen (einmal zur
Basis 10, und dann zur Basis 16). Den Fehlertyp löst der Scanner aus.
Þ ArrayIndexOutOfBoundsException: Der Index liegt nicht im Bereich von 0 bis 255.
Während der erste Fehler beim Dateisystem zu suchen ist, sind die zwei unteren Fehler – unabhängig davon, dass sie ungeprüfte Ausnahmen sind – auf ein fehlerhaftes Format zurück-
44
1.1
Sprachänderungen
zuführen. Die Behandlung soll immer gleich aussehen und kann daher gut in einem multicatch zusammengefasst werden. Daraus folgt:
Listing 1.2: ReadColorTable.java
import java.io.*;
import java.util.Scanner;
public class ReadColorTable
{
private static int[] readColorTable( String filename )
{
Scanner input;
int[] colors = new int[ 256 ];
try
{
input = new Scanner( new File(filename) );
while ( input.hasNextLine() )
{
int index = input.nextInt();
int rgb
= input.nextInt( 16 );
colors[ index ] = rgb;
}
return colors;
}
catch ( IOException e )
{
System.err.printf( "Dateioperationen fehlgeschlagen%n%s%n", e );
}
catch ( InputMismatchException | ArrayIndexOutOfBoundsException e )
{
System.err.printf( "Datenformat falsch%n%s%n", e );
}
finally
{
input.close();
}
return null;
}
45
1
Index
Index
#IMPLIED ............................................................. 538
@XmlElementRef, Annotation ..................... 565
#REQUIRED ......................................................... 538
@XmlElementRefs, Annotation ................... 565
%tD ......................................................................... 346
@XmlElementWrapper, Annotation ........... 560
%tR ......................................................................... 346
@XmlJavaTypeAdapter, Annotation ........... 561
%tT ......................................................................... 346
@XmlList, Annotation ..................................... 559
&amp ..................................................................... 534
@XmlRootElement, Annotation ......... 549, 564
&apos .................................................................... 534
@XmlType, Annotation .................................. 558
&gt .......................................................................... 534
@XmlValue, Annotation ................................ 559
&lt ........................................................................... 534
[L ........................................................................... 1234
&quot .................................................................... 534
1.1.1970 ................................................................ 307
, Ant ..................................................................... 1344
1099, Port rmiregistry .................................... 1046
.class .................................................................... 1229
200, OK HTTP-Statuscode ............................. 1004
.java.policy ........................................................ 1364
404, Not Found HTTP-Statuscode ............... 1004
.keystore ............................................................ 1369
80, HTTP-Port ..................................................... 999
.NET Remoting ................................................. 1037
8080, HTTP-Port ................................................. 999
@CookieParam, Annotation ....................... 1070
@deprecated .................................................... 1227
A
@Documented, Annotation ........................ 1280
@GET, Annotation ......................................... 1062
Abstract Syntax Notation One .................... 1369
@Inject, Annotation ...................................... 1225
AbstractAction, Klasse ..................................... 695
@javax.management.MXBean,
AbstractBorder, Klasse ..................................... 699
Annotation ................................................... 1332
AbstractButton, Klasse .................................... 680
@NotNull, Annotation .................................. 1208
AbstractTableModel, Klasse ........................... 792
@OneWay, Annotation ................................. 1074
Accelerator .......................................................... 753
@Override, Annotation ................................ 1268
accept(), ServerSocket ...................................... 990
@Path, Annotation ........................................ 1062
Access Controller ............................................. 1355
@PathParam, Annotation ............................ 1069
Accessible, Schnittstelle .................................. 854
@Produces, Annotation ............................... 1062
AccessibleObject, Klasse ..................... 1244, 1262
@QueryParam, Annotation ......................... 1070
Action, Schnittstelle ................................ 695, 751
@Retention, Annotation .............................. 1279
ACTION_PERFORMED, ActionEvent ............ 674
@SOAPBinding, Annotation ....................... 1074
Action-Command .............................................. 682
@SuppressWarnings, Annotation ............. 1268
ActionListener, Schnittstelle ....... 662, 676, 678
@Target, Annotation ..................................... 1276
Activatable, Klasse .......................................... 1055
@Transient, Annotation ................................. 558
Activation Daemon ........................................ 1055
@WebMethod, Annotation ......................... 1074
activation.jar ..................................................... 1021
@WebParam, Annotation ............................ 1074
Adapter ................................................................. 201
@WebResult, Annotation ............................ 1074
Adapter, MBean ............................................... 1325
@WebService, Annotation ........................... 1074
Adapterklasse ..................................................... 668
@XmlAccessorType, Annotation .................. 557
add(), Container ........................................ 653, 697
@XmlAttribute, Annotation .......................... 558
addActionListener(), JButton ......................... 678
@XmlElement, Annotation ............................ 551
addItem(), JComboBox .................................... 776
1411
Index
addKeyListener(), Component ...................... 703
Ära .......................................................................... 350
addWindowListener() ....................................... 666
Arc2D, Klasse .............................................. 888–889
Adjustable, Schnittstelle ................................. 736
Area, Klasse .......................................................... 890
AdjustmentEvent, Klasse ................................ 734
AreaAveragingScaleFilter ................................ 929
AdjustmentListener, Schnittstelle ............... 737
ARM-Block ............................................................. 51
Adleman, Leonard M. ..................................... 1371
Array, Klasse ..................................................... 1240
Adler32, Klasse ................................................... 502
ArrayBlockingQueue, Klasse .......................... 287
Adobe Flash ....................................................... 1124
ArrayDeque, Klasse ........................................... 222
Affine Transformation .................................... 941
ArrayList, Klasse ............. 176, 183, 185, 188, 197
AffineTransform, Klasse .................................. 942
ArrayStoreException ........................................ 205
Age, Response-Header ................................... 1005
Artefakte ............................................................... 932
AIFF ........................................................................ 641
Aschermittwoch ................................................. 326
Al-Chwârismî, Ibn Mûsâ .................................. 175
asList(), Arrays ........................................... 201, 265
AlgorithmParameterSpec, Schnittstelle ... 1376
ASM ..................................................................... 1279
Algorithmus ........................................................ 175
ASN.1 .................................................................. 1369
-alias .................................................................... 1369
ASP (Active Server Pages) ............................. 1080
Allgemeines Semaphor ................................... 139
Assistive technology ......................................... 854
allowSystemProperty ..................................... 1365
Assoziativer Speicher ....................................... 184
AllPermission ................................................... 1366
asSubclass(), Class ........................................... 1268
AlphaComposite, Klasse .................................. 907
Astronomie .......................................................... 305
AlreadyBoundException ............................... 1049
Atomar .................................................................... 99
AM_PM, Calendar .............................................. 329
Atomuhr ............................................................... 306
Anmelde-/Versendesystem ......................... 1055
Attribute ............................................................... 533
AnnotatedElement, Schnittstelle .... 1253, 1282
AU ........................................................................... 641
Annotiert ........................................................... 1228
AudioClip, Klasse ............................................... 640
Ant ....................................................................... 1393
AUGUST, Calendar ............................................. 323
Antialiasing ................................................ 871, 941
Ausgabeformatierung ...................................... 306
ANY ........................................................................ 537
Auswahlmenü ..................................................... 775
Apache Commons BeanUtils ....................... 1262
Auszeichnungssprache ........................... 531, 617
Apache Commons Collections ...................... 304
authentication required ............................... 1008
Apache Commons Compress ......................... 626
Authenticator, Klasse ....................................... 971
Apache Commons DBCP ............................... 1198
Authentifizierung ........................................... 1367
Apache Commons IO ............................... 368, 434
Auto-Commit ................................................... 1190
Apache Commons Logging ........................... 1323
Automatic Resource Management (ARM) .... 51
Apache Commons Net ..................................... 998
Automatischer Bildlauf .................................... 714
Apache Commons Primitives ........................ 208
Autorisierung .................................................. 1367
Apache CXF ........................................................ 1073
await(), Condition .............................................. 125
Apache POI .......................................................... 622
AWTEvent, Klasse .............................................. 673
Appendable, Schnittstelle ............................... 451
AWTEventListener, Schnittstelle ................... 854
Apple, Look and Feel ......................................... 832
AWT-Event-Thread ................................... 672, 844
Applet ................................................................. 1125
AWT-Input ............................................................. 78
AppletContext ......................................... 641, 1129
AWT-Motif ............................................................. 78
APRIL, Calendar .................................................. 323
Axis2 ................................................................... 1073
1412
Index
B
BufferedReader, Klasse ........................... 439, 471
BufferedWriter ................................................... 469
barrier ................................................................... 143
build.xml ........................................................... 1394
Base64-Encoding ............................................. 1020
ButtonGroup, Klasse ........................................ 743
Baseline ................................................................. 877
ByteArrayInputStream, Klasse ...................... 467
BasicFileAttributes, Schnittstelle ......... 398–399
ByteArrayOutputStream, Klasse ................... 467
BasicFileAttributeView,
ByteBuffer, Klasse ............................................. 423
Schnittstelle ........................................... 397, 403
Bytecode Verifier ............................................. 1355
BasicStroke, Klasse ............................................ 908
BZip2 ............................................................ 625–626
BatchUpdateException ................................. 1177
Bean Validation ............................................... 1207
beans.xml .......................................................... 1225
C
Bean-Zustände kopieren ............................... 1262
Cache, Bilder ....................................................... 934
Beautifier ........................................................... 1408
Cache-Control ................................................... 1004
Berkeley-Socket-Interface ............................... 983
CachedRowSet, Schnittstelle ........................ 1183
Berners-Lee, Tim ................................................ 998
CAG (Constructive Area Geometry) ............. 891
BevelBorder, Klasse ........................................... 699
Calendar, Klasse ........................................ 306, 320
Bézier-Kurve ........................................................ 890
Callable, Schnittstelle ......................................... 93
Bilder skalieren ................................................... 927
CallableStatement, Schnittstelle ................. 1168
Bildlaufleiste ....................................................... 733
Canvas .................................................................. 913
Binäre Suche (binary search) .......................... 278
CAP_BUTT, BasicStroke ................................... 909
Binäres Semaphor ............................................. 139
CAP_ROUND, BasicStroke ...................... 909, 912
Binärsystem .......................................................... 41
CAP_SQUARE, BasicStroke .............................. 909
binarySearch(), Arrays ...................................... 264
CardLayout, Klasse ............................................ 717
bind(), Registry ................................................ 1048
Caret ...................................................................... 685
Biometrisches System ................................... 1368
CASE_INSENSITIVE_ORDER, String .............. 265
Birrel ................................................................... 1035
CDATA ................................................................... 537
Bitmenge .............................................................. 299
CDI ....................................................................... 1224
BitSet, Klasse ....................................................... 299
CERN ...................................................................... 998
Bitttage .................................................................. 326
Certificate Authority, CA ............................... 1368
Bitweise Manipulation ..................................... 299
CET (Central European Time) ......................... 336
BlockingQueue, Schnittstelle ................ 223, 287
ChangeListener, Schnittstelle ........................ 733
Bootstrap Class Loader .................................. 1355
CharArrayReader, Klasse ................................. 465
Border, Schnittstelle ......................................... 699
CharArrayWriter, Klasse .................................. 464
BorderFactory, Klasse ....................................... 700
Checkbox, Klasse ............................................... 740
BorderLayout, Klasse ............................... 717, 721
checkError() ......................................................... 455
BoundedRangeModel, Schnittstelle ............. 734
Checksum, Schnittstelle .................................. 498
BoxLayout ............................................................ 732
choice box ........................................................... 775
BoxLayout, Klasse ..................................... 717, 720
Christi Himmelfahrt ......................................... 326
brighter(), Color .................................................. 901
Cipher, Klasse ................................................... 1377
Brightness ............................................................ 902
CipherInputStream, Klasse ........................... 1377
Bucket, Hash-Tabelle ........................................ 241
CipherOutputStream, Klasse ....................... 1377
BufferedImage, Klasse ...................................... 924
Class, Klasse ...................................................... 1228
BufferedInputStream, Klasse ................ 439, 471
class, Schlüsselwort ........................................ 1238
BufferedOutputStream .................................... 469
ClassLoader, Klasse ......................................... 1357
1413
Index
ClassNotFoundException ...... 1229–1230, 1242
Connector-Level .............................................. 1325
Client ................................................................... 1038
Constraints, Validierung .............................. 1208
Client, Klasse ..................................................... 1063
ConstraintValidator, Schnittstelle ............. 1217
ClientResponse, Klasse .................................. 1064
ConstraintViolation, Schnittstelle ............. 1209
Client-Server-Kommunikation ..................... 989
Constructor, Klasse ........................................ 1250
Clip-Bereich ......................................................... 867
Contact Port ........................................................ 984
Clipboard .................................................... 754, 836
Container ............................................................. 176
Clipboard, Klasse ............................................... 836
contains(), Shapre .............................................. 895
Clipper ................................................................ 1372
containsKey(), Map ........................................... 233
Clipping ................................................................ 896
Content Negotiation ...................................... 1067
Clipping-Bereich ................................................ 937
Content-Encoding .......................................... 1006
Closeable, Schnittstelle .................................... 443
Content-Handler ....................................... 965, 968
closePath(), Path2D ........................................... 894
ContentHandler, Schnittstelle ....................... 583
Cloudscape ........................................................ 1140
Content-Pane ...................................................... 646
Clustering, Hash-Tabelle ................................. 241
Contexts and Dependency Injection for
Codebase ............................................................ 1363
the Java EE platform .................................. 1224
Codehaus XFire ................................................ 1073
Controller ............................................................. 765
Collator, Klasse ................................................... 266
CopyOnWriteArrayList, Klasse ............. 188, 285
Collection, Schnittstelle ......................... 176, 178
CopyOnWriteArraySet, Klasse ....................... 285
Collection-API .................................................... 175
CopyOption, Schnittstelle ............................... 395
Collections, Klasse ............................................ 176
CORBA (Common Object Request Broker
Color, Klasse ........................................................ 897
Architecture) ..................................... 1037, 1053
com.sun.image.codec.jpeg, Paket ................. 915
CRC32, Klasse ...................................................... 500
com.sun.net.httpserver, Paket .................... 1006
createCompatibleImage(),
com4j .................................................................. 1353
GraphicsConfiguration ................................ 923
ComboBoxModel, Schnittstelle .................... 775
createDirectories(), Files .................................. 407
Command Model ............................................... 662
createDirectory(), Files ..................................... 406
Component, Klasse ........................................... 697
createFile(), Files ................................................. 406
ComponentEvent, Klasse ................................ 674
createGraphics(), BufferedImage .................. 924
ComponentListener, Schnittstelle ............... 707
createRegistry(), LocateRegistry ................. 1045
ComponentUI, Klasse ....................................... 766
createStatement(), Connection ................... 1168
Composite Pattern ............................................ 697
createSymbolicLink(), Files ............................. 407
Composite, Schnittstelle ................................. 907
Crimson ................................................................ 546
CompoundBorder, Klasse ............................... 699
Cryptographic Service Provider ................. 1356
CONCUR_UPDATABLE, ResultSet .... 1176, 1184
CSV (Comma-separated Values) .................... 618
ConcurrentHashMap, Klasse ......................... 285
CubicCurve2D, Klasse ....................................... 888
ConcurrentLinkedQueue, Klasse .................. 285
currentThread(), Thread .................................... 72
ConcurrentMap, Schnittstelle ....................... 284
currentTimeMillis(), System ........................... 307
ConcurrentModificationException ............. 259
curveTo(), GeneralPath .................................... 891
ConcurrentSkipListMap, Klasse ........... 185, 285
Custom tag library .......................................... 1101
ConcurrentSkipListSet, Klasse ....................... 285
CXF, Apache ...................................................... 1073
Condition, Schnittstelle .................................. 125
cxxwrap ............................................................. 1352
Connection, Schnittstelle .................. 1004, 1159
CyberNeko ........................................................... 621
Connector/J ....................................................... 1142
CyclicBarrier, Klasse .......................................... 143
1414
Index
D
Deadlock .............................................................. 119
DECEMBER, Calendar ....................................... 323
Dämon .................................................................... 76
Decompiler ........................................................ 1398
darker(), Color ..................................................... 901
default, Schlüsselwort .................................... 1275
Dash attribute ..................................................... 908
DefaultHandler, Klasse ........................... 583–584
Database Management System .................. 1139
DefaultListCellRenderer, Klasse .................... 774
DatabaseMetaData, Schnittstelle ............... 1194
DefaultListModel, Klasse ................................ 773
DataFlavor, Klasse ............................................. 838
DefaultListModel, Schnittstelle .................... 768
Datagramm ....................................................... 1012
DefaultMutableTreeNode, Klasse ................. 809
DatagramPacket, Klasse ................................ 1012
defaultReadObject(), ObjectInputStream ... 514
Datagram-Socket ............................................. 1010
DefaultTableCellRenderer, Klasse ................ 798
DatagramSocket, Klasse ..................... 1010, 1012
DefaultTableModel, Klasse ............................. 796
DataInput, Schnittstelle .......................... 383, 506
defaultWriteObject(), ObjectOutput-
DataInputStream, Klasse ................................. 478
Stream .............................................................. 513
DataOutput, Schnittstelle ....................... 383, 506
Deflater, Klasse .................................................. 626
DataOutputStream, Klasse .............................. 478
Dekoration .......................................................... 649
DataSource ........................................................ 1195
Delegation Model .............................................. 662
DataSource, Schnittstelle ............................. 1195
delete(), Files ....................................................... 408
DatatypeFactory, Klasse .......................... 341, 562
DELETE, HTTP-Methode ................................ 1000
DATE, Calendar ................................................... 328
deleteIfExists(), Files ......................................... 408
Date, General Header Fields ........................ 1004
Dependency Injection .................................... 1221
Date, Klasse ................................................. 306, 317
Deployment-Descriptor ................................ 1087
DateFormat, Klasse ......................... 306, 346, 352
Deque .................................................................... 220
Dateiattribute ..................................................... 397
Deque, Schnittstelle ................................. 184, 222
Dateiauswahldialog .......................................... 823
Derby .................................................................. 1140
Dateiformat ......................................................... 617
Dereferenced-Meldung ................................. 1050
Dateisystem-Attribute ..................................... 397
deriveFont(), Font .............................................. 880
Dateiverknüpfung ............................................. 364
DES (Data Encryption Standard) ................. 1375
Datenbankausprägung .................................. 1140
Dezimalsystem .................................................... 41
Datenbankschema .......................................... 1140
DGC ...................................................................... 1050
Datenbankverbindung .................................. 1164
Dialog ........................................................... 818–819
Datenbankverwaltungssystem ................... 1139
Digitale Unterschrift ...................................... 1371
Datenbasis ........................................................ 1139
DirectoryNotEmptyException ...................... 408
Datenkompression ............................................ 624
DirectoryStream, Schnittstelle ...................... 410
Datenstrukturen ................................................ 175
DirectoryStream.Filter, Schnittstelle .......... 411
Datenzeiger ......................................................... 384
Direkte ByteBuffer ............................................ 423
Datumswerte ....................................................... 306
Distributed Component Object Model
DAY_OF_MONTH, Calendar ........................... 328
(DCOM) .......................................................... 1037
DAY_OF_WEEK, Calendar ................................ 329
Distributed GC ................................................. 1050
DAY_OF_WEEK_IN_MONTH, Calendar ....... 329
divide and conquer ........................................... 149
DAY_OF_YEAR, Calendar ................................. 329
Divider .................................................................. 712
DB2 ...................................................................... 1143
-Djava.rmi.dgc.leaseValue ............................ 1050
dBase, JDBC ....................................................... 1155
-Djava.rmi.server.codebase .......................... 1053
DBMS .................................................................. 1139
-Djava.security.debug .................................... 1361
-Dcom.sun.management.jmxremote ....... 1329
-Djava.security.manager ............................... 1362
1415
Index
-Djava.security.policy .................................... 1364
Dynamischer Methodenaufruf ................... 1266
-Djdbc.drivers ................................................... 1160
Dynamisches Layout ........................................ 651
dll-Dateien ......................................................... 1343
DnD, Drag & Drop ............................................. 841
E
DNS ........................................................... 1011, 1135
Doclet ....................................................... 1228, 1390
EBCDIC .................................................................. 491
DOCTYPE .............................................................. 539
Echozeichen ........................................................ 686
Document Object Model ................................. 545
EclipseLink ........................................................ 1201
Document Type Definition ............................ 535
ECML ................................................................... 1096
Document, Klasse .............................................. 590
Editor-Kit .............................................................. 692
DocumentBuilderFactory ............................... 547
eFace ...................................................................... 861
Dokumentenformat ......................................... 620
Electronic Commerce Modeling
DOM ...................................................................... 545
Language ....................................................... 1096
DOM Level 3 XPath ........................................... 607
Element suchen ......................................... 278, 282
Domain Name Server ..................................... 1135
Element, Klasse .................................................. 594
Domain Name System ................................... 1011
Element, XML ...................................................... 533
Domain Specific Language (DSL) ................ 1289
ElementType, Aufzählung ............................ 1276
DOMBuilder, Klasse .......................................... 591
Ellipse2D, Klasse ................................................ 888
Doppel-Pufferung, Swing ................................ 712
EmptyBorder, Klasse ......................................... 699
DosFileAttributes, Schnittstelle .................... 399
EmptyStackException ...................................... 220
DosFileAttributeView, Schnittstelle ... 397, 403
End caps ................................................................ 909
Double-Buffering, Swing ................................. 712
Endpoint, Klasse .............................................. 1075
Dozer ................................................................... 1262
ENGLISH, Locale ................................................. 310
Drag & Drop ........................................................ 841
ensureCapacity(), List ....................................... 199
draw(Shape), Graphics2D ................................ 887
Entfernte Methoden ...................................... 1035
draw3DRect(), Graphics ................................... 901
Entfernte Methodenaufrufe ........................ 1035
drawImage(), Graphics ..................................... 917
Entfernte Objekte ........................................... 1042
drawLine(), Graphics ........................................ 871
Entität ................................................................... 534
drawString(), Graphics ..................................... 877
Entity .................................................................. 1005
Drehfeld ............................................................... 787
Entity-Beans ..................................................... 1199
DriverManager, Klasse ........................ 1160, 1163
Entity-Body ....................................................... 1005
Drucken ................................................................ 944
Entity-Header ........................................ 1002, 1005
DSAPrivateKeySpec, Klasse .......................... 1377
EntityResolver, Schnittstelle .......................... 583
DST_OFFSET, Calendar ..................................... 329
entrySet(), Map ................................................... 238
DTD ........................................................................ 535
Enumeration, Schnittstelle ............................. 260
DTDHandler, Schnittstelle .............................. 583
Enumerator ......................................................... 249
Duration, Klasse ....................................... 342, 563
EOFException ............................................. 382, 478
Durchschuss ....................................................... 884
ERA, Calendar ...................................................... 328
-Duser.timezone ................................................ 324
Ereignis, GUI ........................................................ 673
Dynamic invocation ....................................... 1264
Ereignisauslöser ................................................. 662
dynamic linked libraries ............................... 1343
Ereignisschlange ................................................ 844
Dynamic MBeans ............................................ 1325
ErrorHandler, Schnittstelle ............................. 583
Dynamische Datenstruktur ........................... 175
EtchedBorder, Klasse ........................................ 699
Dynamische Webseite ................................... 1079
Event Queue ........................................................ 844
Event-Dispatching-Thread .............................. 672
1416
Index
EventFilter, Schnittstelle ................................. 578
FileSystems, Klasse ........................................... 416
Eventquelle .......................................................... 662
FileTypeDetector, Klasse ................................. 409
EventQueue, Klasse ......................... 844, 849, 853
FileVisitOption, Aufzählung .......................... 415
Event-Source ....................................................... 662
FileVisitor, Schnittstelle .................................. 413
Excel-Dokumente .............................................. 623
FileVisitResult, Aufzählung ............................ 413
Exchanger, Klasse .............................................. 145
FileWriter, Klasse ............................................... 428
executeQuery(), Statement .......................... 1168
fill(), Collections ................................................. 280
executeUpdate(), Statement ........................ 1168
FilteredRowSet, Schnittstelle ....................... 1183
Executor, Schnittstelle ....................................... 89
FilterInputStream, Klasse ............................... 478
ExecutorService, Schnittstelle ......................... 90
FilterOutputStream, Klasse ............................ 478
EXIT_ON_CLOSE, JFrame ................................. 647
FilterReader, Klasse .......................................... 478
exportObject(), UnicastRemoteObject ...... 1048
FilterWriter, Klasse ........................................... 478
eXtensible Markup Language ......................... 532
final, Schlüsselwort ........................................ 1238
Fingerabdruck .................................................. 1371
F
FIPS ...................................................................... 1372
Firewall ............................................................... 1054
Farbe ...................................................................... 897
First in, First out ................................................ 184
Farbmodell ........................................................... 902
Fitts’s Law ............................................................ 718
Farbsättigung ...................................................... 902
Five-Nine-System ............................................ 1367
fastutil ................................................................... 208
Flache Kopie ........................................................ 234
FEBRUARY, Calendar ......................................... 323
FlowLayout, Klasse ................................... 717–718
Federal Information Processing Standards
Flushable, Schnittstelle ................................... 444
Publication ................................................... 1372
FocusEvent, Klasse ............................................ 674
Fenster .................................................................. 645
FocusListener, Schnittstelle ........................... 702
Fenstermenü ....................................................... 748
Fokus ..................................................................... 701
Field, Klasse ................................ 1243–1244, 1255
Font, Klasse ................................................ 656, 878
Fielding, Roy Thomas .................................... 1059
FontFormatException ...................................... 882
FIFO-Prinzip ......................................................... 184
FontMetrics, Klasse ........................................... 882
File, Klasse ............................................................ 358
FontRenderContext, Klasse ............................ 885
file.encoding ........................................................ 491
ForkJoinPool, Klasse ......................................... 153
File.separatorChar ............................................. 360
format() ................................................................ 455
FileAlreadyExistsException ............................ 406
Formatierungsanweisungen .......................... 347
FileAttribute, Schnittstelle .............................. 406
Formatierungsstring ............................... 350–351
FileChannel, Klasse ................................... 376, 424
forName(), Class ............................................... 1229
FileDescriptor, Klasse ....................................... 435
Fortschrittsbalken ............................................. 745
FileFilter, Schnittstelle ..................................... 366
Frame .................................................................... 645
FileInputStream, Klasse ................................... 431
FRANCE, Locale .................................................. 310
FileNameExtensionFilter, Klasse .................. 823
FRENCH, Locale .................................................. 310
FilenameFilter, Schnittstelle .......................... 366
Fronleichnam ..................................................... 326
FileOutputStream, Klasse ................................ 431
FULL, DateFormat .............................................. 348
FilePermission ................................................. 1366
Füllfaktor ............................................................. 241
FileReader, Klasse .............................................. 430
Füllmuster ........................................................... 912
FileSystem, Klasse .............................................. 386
Füllung, Paint ..................................................... 896
FileSystem, Schnittstelle ................................. 416
Future, Schnittstelle ........................................... 94
1417
Index
G
GMST ..................................................................... 305
GNU Trove ........................................................... 208
G1, Garbage-Collector ........................................ 60
Google Collections Library .............................. 294
Gebundene Property ........................................ 711
Google Guava ............................................. 294, 304
Geburtsdatum .................................................... 332
GradientPaint ..................................................... 897
Geburtstagsparadoxon .................................. 1371
grant-Anweisung ............................................ 1363
Gegenseitiger Ausschluss ......................... 99, 104
Granularität, Threads ......................................... 88
General Header ................................................ 1002
Graphics Interchange Format ........................ 914
GeneralPath, Klasse .......................................... 891
Graphics, Klasse ................................................. 866
-genkey ............................................................... 1369
Graphics2D, Klasse ............................................ 866
Geordnete Liste .................................................. 183
GraphicsEnvironment, Klasse ....................... 880
GERMAN, Locale ................................................ 310
Greenwich Mean Sidereal Time ..................... 305
GERMANY, Locale .............................................. 310
GregorianCalendar, Klasse ..................... 320, 322
get(), List ............................................................... 189
Gregorianischer Kalender ............................... 320
get(), Map ............................................................. 232
GridBagConstraints, Klasse ............................ 726
GET, HTTP-Methode ....................................... 1000
GridBagLayout, Klasse ............................. 717, 725
getAttribute(), Files ........................................... 404
GridLayout, Klasse .................................... 717, 724
getBytes(), ResultSet ....................................... 1175
Groovy ............................................................... 1313
getClass(), Object ............................................. 1229
Groovy-Eclipse ................................................. 1313
getColumnClass(), TableModel ...................... 793
GroupLayout, Klasse ......................................... 717
getColumnCount(), TableModel ................... 793
Grundlinie ........................................................... 877
getColumnName(), TableModel .................... 793
Grundton ............................................................. 902
getConnection(), DriverManager ................ 1160
Guard ..................................................................... 131
getContentPane(), JFrame ............................... 646
Guarded action ................................................... 131
getDefaultToolkit(), Toolkit ............................ 650
Guarded wait ....................................................... 131
getFileAttributeView(), Files .......................... 401
Guava ........................................................... 294, 304
getInstance(), Calendar .................................... 324
GUI-Builder ....................................................... 1227
GET-Methode ............................................. 973, 999
Guice ................................................................... 1221
getPriority(), Thread ........................................... 87
Gültigkeit, XML .................................................. 535
getProperty(), Properties ................................. 243
gzip ...................................................................... 1006
getResource() ...................................................... 446
GZIPInputStream, Klasse ................................. 627
getResourceAsStream() ................................... 446
GZIPOutputStream, Klasse ............................. 627
getRowCount(), TableModel ........................... 793
GetStringUTFChars ......................................... 1345
getTableCellEditorComponent(),
H
TableCellEditor .............................................. 801
H2 ........................................................................ 1143
getText(), JLabel ................................................. 654
Halbierungssuche .............................................. 278
getText(), JTextComponent ............................ 685
Hashcode .............................................................. 241
getTimeInMillis(), Calendar ........................... 325
Hash-Funktion .................................................... 241
getValueAt(), TableModel ............................... 793
HashMap, Klasse ....................................... 186, 229
GIF .......................................................................... 914
HashSet, Klasse .......................................... 184, 213
Glass-Pane ........................................................... 815
Hash-Tabelle ........................................................ 229
Globbing-Syntax ................................................ 411
Hash-Verfahren ............................................... 1371
gluegen ............................................................... 1352
HEAD, HTTP-Methode ................................... 1000
Glyphe .................................................................. 877
Header-Datei .................................................... 1341
1418
Index
HEAD-Methode ................................................... 999
ImageIO ................................................................ 915
Helligkeit .............................................................. 902
ImageIO, Klasse .................................................. 915
Hexadezimalsystem ........................................... 41
ImageObserver, Schnittstelle ........................ 918
Hibernate .......................................................... 1206
InetAddress, Klasse ........................................... 979
Hibernate Validator ....................................... 1208
InetSocketAddress, Klasse .............................. 988
HierarchyEvent, Klasse .................................... 675
Inflater, Klasse .................................................... 626
High-level event ................................................. 674
InheritableThreadLocal, Klasse ..................... 159
Hoare, C. A. R. ...................................................... 104
InputMethodEvent, Klasse ............................. 675
Host-Adresse ....................................................... 977
InputStream, Klasse ......................................... 445
HOUR, Calendar .................................................. 329
InputStreamReader, Klasse ............................ 492
HOUR_OF_DAY, Calendar ............................... 329
InstallShields .................................................... 1137
HSB ......................................................................... 902
instanceof, Schlüsselwort ............................. 1235
HSQLDB ............................................................. 1141
InstantiationException ...................... 1242, 1254
HTML ............................................................ 531, 998
instrumentalisierte Objekte ........................ 1325
HTML-Formular .............................................. 1095
Integritätsprüfung von Nachrichten ......... 1371
HTTP ............................................................. 957, 998
Inter-Client Communication Convention
HTTP 0.9 ............................................................. 1003
Manual ............................................................. 837
HTTP 1.0 ................................................................ 999
Interface/Implementation-Pair .................... 792
http.proxyHost ................................................ 1008
Intermediate container ................................... 712
http.proxyPort ................................................. 1008
Internal frame .................................................... 815
HttpClient ............................................................ 997
Internationalisierung ...................................... 313
HttpComponents ............................................... 997
Internes Fenster ................................................. 815
HttpHandler, Schnittstelle ........................... 1006
Internet Control Message Protocol ............ 1031
HTTP-Header ....................................................... 967
Internet Engineering Task Force .................. 957
https.ProxyHost .............................................. 1008
Internet Protocol ............................................... 956
https.ProxyPort ............................................... 1008
Internet-Media-Types .................................... 1005
HttpServer, Klasse .......................................... 1006
Inter-ORB Protocol .......................................... 1053
HttpServerFactory, Klasse ............................ 1063
Interrupt ................................................................ 79
HttpSession, Schnittstelle ............................ 1111
interrupt(), Thread ...................................... 79, 136
Hue ......................................................................... 902
interrupted(), Thread ......................................... 81
Hypertext Transfer Protocol ................. 957, 998
InterruptedException ................ 74, 81, 126, 136
InterruptedIOException .................................. 991
I
Intersolv ............................................................. 1150
Introspection .................................................... 1227
ICCCM .................................................................... 837
invalidate(), Component ................................. 710
ICMP ................................................................... 1031
InvalidClassException ............................ 505, 517
ICO .......................................................................... 915
Inversion of Control ....................................... 1221
IdentityHashMap, Klasse ................................. 237
Invocation API ................................................. 1353
IETF ......................................................................... 957
Invocation-API ................................................. 1338
IIOP ..................................................................... 1053
InvocationEvent, Klasse .................................. 850
IllegalAccessException .................................. 1242
InvocationTargetException .............. 1242, 1255
IllegalMonitorStateException ............... 129, 136
invoke(), Method ............................................. 1264
IllegalThreadStateException ............................ 67
invokeAndWait(), SwingUtilities .................. 848
Image, Klasse ....................................................... 914
invokeLater(), SwingUtilities ................ 747, 848
ImageIcon, Klasse .............................................. 657
Invoker-Servlet ................................................ 1117
1419
Index
IoC-Container ................................................... 1221
Java Document Object Model ......................... 545
IP ............................................................................ 956
Java Foundation Classes (JFC) ......................... 869
IP-Adresse ............................................................ 977
Java Image Management Interface ............... 915
isCellEditable(), TableModel .................. 793, 795
Java Management Beans ............................... 1325
isInterrupted(), Thread ...................................... 79
Java Management Extensions .................... 1324
ISO Country Code .............................................. 309
Java Message Service ..................................... 1055
ISO Language Code ........................................... 309
Java Native Interface ...................................... 1337
ISO-639-Code ...................................................... 309
Java Network Launcher Protocol ................ 1137
ISO-Abkürzung ................................................... 312
Java Object Serialization .................................. 502
ITALIAN, Locale .................................................. 310
Java OpenGL ........................................................ 953
ItemEvent, Klasse .............................................. 740
Java Persistence API .......................................... 503
ItemListener, Schnittstelle ... 740, 742, 745, 779
Java Persistence API (JPA) ............................. 1206
ItemSelectable, Schnittstelle .......................... 741
Java Plug-In ....................................................... 1123
itemStateChanged(), ItemListener ............... 742
Java Secure Socket Extension ........... 1008, 1033
Iterable, Schnittstelle ....................................... 187
Java Virtual Machine Process Status
Iterator ................................................................. 249
Iterator, Schnittstelle .............................. 249, 260
iText ...................................................................... 622
Tool ................................................................. 1381
Java Virtual Machine Statistics
Monitoring Tool ......................................... 1382
java.awt.event, Paket ........................................ 673
J
java.awt.geom, Paket ........................................ 870
java.beans, Paket ................................................ 523
JAAS 씮 Java Authentication and Authorization
Service (JAAS)
java.lang.management, Paket ..................... 1326
java.naming.factory.initial .......................... 1198
Jackson ................................................................. 620
java.net, Paket ..................................................... 955
Jad, Decompiler ................................................ 1405
java.nio.file, Paket ............................................. 386
Jahr ............................................................... 328, 350
java.nio.file.attribute, Paket ........................... 397
JAI ........................................................................... 915
java.rmi.server.codebase .............................. 1053
Jakarta HttpClient ............................................. 997
java.rmi.useCodebaseOnly .......................... 1053
JANUARY, Calendar ........................................... 323
java.security ..................................................... 1364
JAPAN, Locale ...................................................... 310
java.sql.Date, Klasse ....................................... 1173
JAPANESE, Locale ............................................... 310
java.sql.Time, Klasse ...................................... 1173
Jar-Archiv ........................................................... 1087
java.util.concurrent, Paket .............................. 286
Jar-Datei ............................................................... 969
java.util.concurrent.atomic, Paket ...... 114, 148
JarFile, Klasse ............................................. 640, 970
java.util.jar, Paket .............................................. 625
jarsigner, Dienstprogramm .......................... 1370
java.util.zip, Paket ..................................... 625–626
JarURLConnection, Klasse .............................. 970
Java-Beans ......................................................... 1227
Java 2D-API .......................................................... 869
JavaBeans Activation Framework .............. 1021
Java Accessibility ............................................... 854
JavaBeans Persistence ...................................... 502
Java API for XML Parsing ................................. 546
Java-Cryptography-API ................................. 1356
Java Authentication and Authorization Service
JavaDoc-Tag ...................................................... 1227
(JAAS) ................................................... 1356, 1367
JavaFX ................................................................. 1124
Java Cryptography Architecture ................. 1356
javah, Dienstprogramm ................................ 1341
Java Cryptography Extension (JCE) ............ 1356
javah-Task, Ant ................................................ 1341
Java Database Connectivity .......................... 1148
Java-Look-and-Feel ............................................ 830
Java DB ................................................................ 1140
JavaMail API ..................................................... 1020
1420
Index
javap ................................................................... 1399
JEditorPane, Klasse .................................. 683, 692
JavaScript .......................................................... 1135
Jersey, JAX-RS Implementierung ................ 1060
JavaServer Faces .............................................. 1120
Jetty ..................................................................... 1084
JavaServer Page ............................................... 1081
JFileChooser, Klasse .......................................... 823
javax.crypto, Paket ......................................... 1356
JFormattedTextField, Klasse ................. 683, 687
javax.jws, Paket ............................................... 1074
JFrame, Klasse ........................................... 645, 867
javax.net, Paket ............................................... 1033
JGoodies Looks ................................................... 833
javax.script, Paket ................................ 1306, 1312
Jimi ........................................................................ 915
javax.sound, Paket .................................... 640–641
Jindent ................................................................ 1409
javax.sound.midi, Paket .................................. 642
JLabel, Klasse ....................................................... 653
javax.swing, Paket ............................................. 645
jlGui ....................................................................... 641
javax.swing.text, Paket .................................... 683
JList, Klasse .......................................................... 767
javax.swing.undo, Paket .................................. 842
jmap, Dienstprogramm ................................. 1382
javax.xml.bind.annotation, Paket ................ 549
JMenu, Klasse ............................................ 748, 750
Jawin ................................................................... 1353
JMenuBar, Klasse ............................................... 748
JAXB ....................................................................... 548
JMenuItem, Klasse ................................... 680, 750
JAXBContext, Klasse ......................................... 549
JMS ....................................................................... 1055
Jaxen ............................................................. 590, 607
JMX ...................................................................... 1324
JAXP .............................................................. 546–547
JMXConnector, Schnittstelle ........................ 1336
JAX-RPC .............................................................. 1073
JMXConnectorServer, Klasse ....................... 1335
JAX-RS ................................................................. 1060
JNDI ..................................................................... 1196
JAX-RS-Injizierung .......................................... 1069
jndi.properties ................................................. 1196
JAX-WS ............................................................... 1073
JNI ........................................................................ 1337
JAX-WS RI .......................................................... 1073
Joda Time ............................................................. 355
JBP, JavaBeans Persistence .............................. 502
JOGL ....................................................................... 953
JButton, Klasse ........................................... 676, 680
join(), Thread ........................................................ 84
JCA ....................................................................... 1356
JOIN_BEVEL, BasicStroke ................................ 910
JCheckBox, Klasse .............................................. 680
JOIN_MITER, BasicStroke ................................ 910
JCheckBoxMenuItem, Klasse .......................... 750
JOIN_ROUND, BasicStroke .............................. 910
jCIFS ....................................................................... 378
JoinRowSet, Schnittstelle .............................. 1183
JComboBox, Klasse ............................................ 775
jOpenDocument ................................................ 624
jconsole, Dienstprogramm .......................... 1328
JOptionPane, Klasse .......................................... 820
JDBC .................................................................... 1148
JOS, Java Object Serialization ......................... 502
JDBC 1.0 .............................................................. 1151
JPA (Java Persistence API) ......... 503, 1199, 1206
JDBC 2.0 API ...................................................... 1151
JPA 씮 JPA (Java Persistence API)
JDBC 2.0 Optional Package API ................... 1151
JPanel, Klasse ............................................. 712, 716
JDBC 2.1 core API ............................................. 1151
JPasswordField, Klasse ............................ 683, 686
jdbc.drivers ....................................................... 1160
JPEG ....................................................................... 914
JDBC-ODBC-Bridge-Treiber .......................... 1149
JPopupMenu, Klasse ......................................... 760
JDBCRowSet, Schnittstelle ............................ 1182
JProgressBar, Klasse ................................. 745, 849
JDesktopPane, Klasse ........................................ 815
jps, Dienstprogramm .......................... 1328, 1381
JDialog, Klasse ..................................................... 819
JRadioButton, Klasse ............................... 680, 743
JDOM ..................................................................... 545
JRadioButtonMenuItem, Klasse .................... 750
JDOMResult, Klasse ........................................... 613
JRMP (Java Remote Method Protocol) ....... 1053
JDOMSource, Klasse .......................................... 613
JRootPane, Klasse .............................................. 815
1421
Index
jrunscript, Dienstprogramm ....................... 1306
KeyListener, Schnittstelle ............................... 703
JScrollBar, Klasse ...................................... 713, 734
KeyPairGenerator, Klasse ............................. 1376
JScrollPane ........................................................... 713
KeySelectionManager, Schnittstelle ............ 779
JScrollPane, Klasse ......... 691, 712–713, 769, 790
keySet(), Map ....................................................... 238
JSlider, Klasse ...................................................... 733
Keystore ............................................................. 1370
JSON (JavaScript Object Notation) ..... 619, 1066
keytool, Dienstprogramm ............................ 1369
JSP ........................................................................ 1081
Klasse ..................................................................... 929
JSpinner, Klasse .................................................. 787
Klassenlader ..................................................... 1357
JSplitPane, Klasse ..................................... 712, 715
Kollision, Signatur .......................................... 1371
jsr166y .................................................................. 152
Kollisionsangriff ............................................. 1371
JSR-203 .................................................................. 386
Kompressionsfunktion ................................. 1371
JSR-223 ................................................................ 1306
Kompressionsstufe ........................................... 932
JSR-299 ..................................................... 1221, 1224
Komprimierungsfaktor ................................... 914
JSR-303:Bean Validation ................................ 1207
Konstruktive Flächengeometrie ................... 891
JSR-311 ................................................................ 1060
Kontextmenü ..................................................... 759
JSSE ...................................................................... 1008
Kontraktionsfunktion ................................... 1371
jstack, Dienstprogramm ................................ 1383
Kontrollfeldgruppe ........................................... 743
jstat, Dienstprogramm .................................. 1382
Koordinierte Weltzeit ....................................... 306
JSTL ...................................................................... 1101
Kopfdefinition .................................................... 535
JTabbedPane, Klasse ................................ 712, 714
KOREA, Locale ..................................................... 310
JTable, Klasse ...................................................... 789
KOREAN, Locale .................................................. 310
JTableHeader, Klasse ........................................ 804
Kritischer Abschnitt ............................................ 99
JTextArea, Klasse ............................................... 683
Kryptografische Prüfsumme ....................... 1371
JTextComponent, Klasse ................................. 685
Kubische Kurvensegmente ............................. 890
JTextField, Klasse ...................................... 683–684
Kurve ..................................................................... 890
JTextPane, Klasse ............................................... 683
JTidy ...................................................................... 621
L
JToggleButton, Klasse ............................. 680, 682
JToolBar, Klasse ......................................... 712, 756
Last-in-First-out ................................................. 218
JTree, Klasse ........................................................ 809
Latin-1 ................................................................... 491
JULY, Calendar .................................................... 323
Laufwerksname .................................................. 374
JUNE, Calendar ................................................... 323
LayoutManager, Schnittstelle ........................ 718
JViewport, Klasse ............................................... 713
lazy activation ................................................. 1054
JWindow, Klasse ................................................. 818
LD_LIBRARY_PATH ........................................ 1340
JXPath ................................................................... 616
leading .................................................................. 884
Lease ................................................................... 1050
K
lib/security ....................................................... 1364
Kanonischer Pfad .............................................. 361
line joins ...................................................... 908, 910
Keller ..................................................................... 218
line.separator ................................................... 1360
Kerberos ............................................................. 1368
Line2D, Klasse ............................................ 887–888
Key, Schnittstelle .................................... 184, 1375
LinearGradientPaint ......................................... 897
KeyEvent, Klasse ....................................... 675, 703
LineBorder, Klasse ............................................. 699
KeyGenerator, Klasse ..................................... 1376
LineMetrics, Klasse ............................................ 885
1422
LIFO ........................................................................ 218
Index
LineNumberReader, Klasse ............................. 474
M
lineTo(), GeneralPath ........................................ 891
Linie ....................................................................... 870
MAC ..................................................................... 1371
Linienende ........................................................... 909
MAC-Adresse .................................................... 1032
Linien-Pattern ..................................................... 908
Magische Zahlenwerte ................................... 1238
Linienverbindung .............................................. 910
Mail User Agent ............................................... 1019
LinkedBlockingDeque, Klasse ........................ 222
MalformedURLException ............................... 959
LinkedBlockingQueue, Klasse ........................ 287
Management Interface .................................. 1325
LinkedHashSet, Klasse ...................................... 218
ManagementFactory, Klasse ........................ 1330
LinkedList, Klasse ................... 183–185, 188, 200
Manipulation Detection Code ..................... 1371
LinkOption, Aufzählung .................................. 396
Map, Schnittstelle ........................... 176, 185, 228
List, Schnittstelle ....................................... 183, 188
Map.Entry, Klasse .............................................. 239
ListCellRenderer, Schnittstelle ....................... 774
MappedByteBuffer, Klasse .............................. 425
Liste ........................................................................ 188
MARCH, Calendar .............................................. 323
Liste füllen ........................................................... 280
Markierungsschnittstelle ............................... 508
Listener ................................................................. 662
Marshaller, Schnittstelle ................................. 549
ListIterator, Schnittstelle ................................. 202
Marshalling ....................................................... 1038
ListSelectionEvent, Klasse ...................... 769, 771
MatteBorder, Klasse ......................................... 699
ListSelectionListener, Schnittstelle ..... 769, 771
Mausrad ............................................................... 705
ListSelectionModel, Schnittstelle ................. 805
Maven ................................................................. 1393
Load Factor .......................................................... 241
max(), Collections ............................................. 267
load(), System ................................................... 1340
MAX_PRIORITY, Thread .................................... 87
loadLibrary(), System ..................................... 1339
MAY, Calendar .................................................... 323
Locale ..................................................................... 310
MBean ................................................................. 1325
Locale, Klasse ...................................................... 309
MBean-Server ................................................... 1325
LocateRegistry, Klasse ................................... 1045
MD ....................................................................... 1371
Location, Response-Header ......................... 1005
MD2 ..................................................................... 1371
Lock ............................................................... 104, 114
MD4 ..................................................................... 1371
lock(), Lock ........................................................... 106
MD5 ..................................................................... 1371
Lock-free-Algorithmus ..................................... 284
MDC ..................................................................... 1371
Locking .................................................................. 376
MediaTracker, Klasse ....................................... 934
log4j ......................................................... 1315, 1320
MediaType, Klasse ........................................... 1062
Logback .............................................................. 1324
MEDIUM, DateFormat ..................................... 348
logClass .............................................................. 1049
Megginson, David ............................................. 545
Logging, RMI .................................................... 1049
Memory Map .................................................... 1382
Login-Modul ..................................................... 1367
Menü ..................................................................... 748
Logisch atomar ................................................... 128
Menübalken ........................................................ 748
Log-Level ........................................................... 1317
Menüeintrag ....................................................... 748
lokale Objekte .................................................. 1042
Menütrennlinie ................................................. 750
Lokaler Host ........................................................ 980
Merant ................................................................ 1150
Lokalisierung ...................................................... 313
Meridian .............................................................. 305
LONG, DateFormat ............................................ 348
Message Authentication Code ..................... 1371
Low-level event .................................................. 674
Message Integrity Check ............................... 1371
Message Queues .............................................. 1055
Message Store ................................................... 1019
1423
Index
Message Transfer Agent ................................ 1019
MouseMotionListener, Schnittstelle ........... 662
Message Transfer System ............................. 1019
MouseWheelEvent, Klasse .............................. 705
Message-Digest ................................................ 1371
MS ........................................................................ 1019
MessageDigest, Klasse ................................... 1372
MTA ..................................................................... 1019
Metadaten .............................................. 1003, 1191
MTS ..................................................................... 1019
META-INF/services ......................................... 1222
MUA .................................................................... 1019
Meta-Information ........................................... 1005
Multicast-Kommunikation .......................... 1033
Metal, Look and Feel ......................................... 830
Multi-catch ............................................................ 44
Meta-Objekt ...................................................... 1228
Multi-Map ............................................................ 295
Meta-Programming ........................................ 1227
Multi-Menge ....................................................... 295
Method, Klasse ................................................. 1246
MULTIPLE_INTERVAL_SELECTION,
Methode des Aufrufes .................................... 1000
MIC ...................................................................... 1371
ListSelectionModel ....................................... 771
Multipurpose Internet Mail
Microsoft Access .............................................. 1143
Extensions .................................................... 1020
Microsoft Silverlight ...................................... 1124
Multi-Set ............................................................... 295
Microsoft SQL Server ...................................... 1143
MutableTreeNode, Schnittstelle .................... 809
Middleware ....................................................... 1040
Mutex .................................................................... 104
MIDI ....................................................................... 642
MVC ....................................................................... 765
MidiSystem, Klasse ........................................... 642
MXBeans ............................................................ 1325
MILLISECOND, Calendar .................................. 329
MySQL ................................................................ 1142
Millisekunde ....................................................... 329
MIME ................................................................... 1020
N
MimeMultipart, javax.mail .......................... 1028
MIME-Nachrichten ......................................... 1003
Namensdienst ....................................... 1038, 1045
MIME-Typ ............................................................ 968
Namensraum ...................................................... 542
min(), Collections .............................................. 267
Native Methode ............................................... 1337
MIN_PRIORITY, Thread ..................................... 87
Native Protocol All-Java Driver ................... 1150
Minute .................................................................. 329
native, Schlüsselwort ..................................... 1338
MINUTE, Calendar ............................................. 329
Native-API Java Driver ................................... 1150
Mitteleuropäische Zeit (MEZ) ........................ 336
Natürliche Ordnung .......................................... 263
Mnemonic ........................................................... 753
NavigableMap, Schnittstelle .................. 185, 230
Modal .................................................................... 819
NavigableSet, Schnittstelle ............................. 216
Model .................................................................... 765
Navigation ........................................................... 701
Model MBeans .................................................. 1325
Nearest neighbor algorithm ........................... 929
Model-View-Controller .................................... 765
Nelson ................................................................ 1035
Modifizierer ...................................................... 1238
NetPermission ................................................. 1366
Monat ................................................................... 328
netstat ................................................................... 989
Monitor ................................................................ 104
Network Filesystem ....................................... 1011
monitorenter ...................................................... 104
network-address.cache.ttl, Property ............ 981
monitorexit ........................................................ 104
NetworkInterface, Klasse ................................. 981
Monitoring ........................................................ 1324
Netz-Protokoll All-Java Driver .................... 1151
MONTH, Calendar ............................................. 328
new, Schlüsselwort ......................................... 1253
Mouse wheel ....................................................... 705
newDirectoryStream(), Files .................. 410–411
MouseEvent, Klasse .......................................... 675
newInstance(), Array ...................................... 1240
MouseListener, Schnittstelle ......................... 662
newInstance(), Constructor ......................... 1253
1424
Index
newLine(), BufferedWriter .............................. 471
Open MBeans ................................................... 1325
NFS ...................................................................... 1011
OpenDocument ................................................. 624
Nicht ausführend ............................................... 126
openStream(), URL ............................................ 963
Nicht direkte ByteBuffer .................................. 423
OperatingSystemMXBean,
Nicht-modal ........................................................ 819
Schnittstelle .................................................. 1326
Nimbus, Look and Feel ..................................... 830
Optionale Operation ........................................ 273
NIO.2 ...................................................................... 386
Optionsfeld ......................................................... 743
NO_SUCH_PAGE, Printable ............................ 945
Oracle Database ............................................... 1143
NoClassDefFoundError ................................. 1230
OracleDriver ..................................................... 1162
NoSuchAlgorithmException ....................... 1373
org.jdom, Paket .................................................. 589
NoSuchElementException ..................... 221, 249
OR-Mapping ........................................................ 503
NoSuchFieldException .................................. 1242
Ostersonntag ...................................................... 326
NoSuchMethodException ............................ 1242
OutputStream, Klasse ...................................... 441
NoSuchProviderException ........................... 1373
OutputStreamWriter, Klasse .......................... 491
notify(), Object ........................................... 124, 135
OverlayLayout, Klasse ...................................... 732
notifyAll() ............................................................. 128
NotSerializableException .............. 505, 508, 510
P
NOVEMBER, Calendar ....................................... 323
Null Object Pattern ............................................ 274
P2P ....................................................................... 1055
NULL, SQL .......................................................... 1175
Pack200 ................................................................ 625
PAGE_EXISTS, Printable .................................. 945
O
paint(), Frame ..................................................... 865
Oberklasse finden ........................................... 1236
paintComponent() ............................................ 867
Oberlänge ............................................................. 884
Palmsonntag ....................................................... 326
Obfuscator .................................. 1230, 1398, 1406
Parsed Character Data ...................................... 537
Object Management Group .............. 1037, 1053
ParseException .................................................. 353
Object Serialization Stream Protocol ........... 511
Passionssonntag ................................................ 326
ObjectInputStream, Klasse .............................. 505
Path, Klasse ......................................................... 386
ObjectName, Klasse ........................................ 1333
Paths, Klasse ....................................................... 386
ObjectOutputStream, Klasse .......................... 504
PCDATA ................................................................ 537
ObjectStreamField, Klasse ............................... 511
PDFBox ................................................................. 622
Objekt-relationales Mapping ......................... 503
Peer-Elemente .................................................... 845
Observer-Pattern ............................................... 765
Permissions ...................................................... 1366
Ocean, Look and Feel ........................................ 830
Persistence Unit ............................................... 1203
OCTOBER, Calendar ........................................... 323
PersistenceDelegate, Klasse ........................... 525
ODBC ....................................................... 1144, 1149
Persistenz ............................................................ 502
ODBC-Datenquellen-Administrator .......... 1144
Pfad ........................................................................ 891
ODF Toolkit .......................................................... 624
Pfingstsonntag ................................................... 326
ODF, OpenDocument ....................................... 624
PHP ...................................................................... 1080
Oktalsystem .......................................................... 41
PipedInputStream, Klasse .............................. 494
Olsen-Datenbank ............................................... 339
PipedOutputStream, Klasse ........................... 494
OMG (Object Management Group) ............ 1037
PipedReader, Klasse .......................................... 494
Opak ....................................................................... 711
PipedWriter, Klasse ........................................... 494
Open Database Connectivity Standard .... 1149
Plain Old Java Object ...................................... 1220
Paint, Schnittstelle ............................................ 896
1425
Index
Plattenspeicher .................................................. 375
PriorityBlockingQueue, Klasse ...................... 290
Pluggable Authentication Module
PriorityQueue, Klasse ....................................... 184
(PAM) .............................................................. 1367
PriorityQueue, Schnittstelle ........................... 290
POCO ................................................................... 1220
private, Schlüsselwort ................................... 1238
Point-to-Point .................................................. 1055
PrivateKey, Schnittstelle .............................. 1375
POJO .................................................................... 1220
probeContentType, Files ................................. 409
Policy-Datei ....................................................... 1363
Programm-Icon .................................................. 921
policytool, Dienstprogramm ....................... 1365
ProGuard ........................................................... 1407
Polygon ................................................................ 874
Properties, Klasse .............................................. 243
Polygon, Klasse ......................................... 874, 888
PropertyChangeEvent, Klasse ........................ 711
Polyline ................................................................ 874
Property-Datei .................................................... 618
POP before send ............................................... 1027
PropertyDescriptor, Klasse .......................... 1250
POP3 .................................................................... 1020
PropertyPermission ....................................... 1366
Popup-Menü ....................................................... 759
Proposed Standard ............................................ 957
Port 1234 .............................................................. 989
protected, Schlüsselwort .............................. 1238
Port, RMI-Namensdienst ............................... 1046
Protocol Buffers ........................................ 503, 526
Port-Adresse ....................................................... 983
Protocol Handler ....................................... 967–968
Position des Fensters ....................................... 649
Protokoll ............................................................... 957
PosixFileAttributes, Schnittstelle ................. 399
Proxy .................................................................. 1035
PosixFileAttributeView, Schnittstelle ......... 403
Proxy-Authenticate, Response-Header .... 1005
PosixFilePermission, Aufzählung ................ 400
Proxy-Authorization ........................................ 972
PosixFilePermissions, Klasse ......................... 400
ProxySelector, Klasse .................................... 1009
POST, HTTP-Methode ..................................... 1000
Proxy-Server .................................................... 1007
PostgreSQL ........................................................ 1142
Public, Response-Header .............................. 1005
POST-Methode .......................................... 973, 999
public, Schlüsselwort ..................................... 1238
POST-Request ..................................................... 976
PublicKey, Schnittstelle ................................ 1375
PowerPoint-Dokumente ................................. 623
Publish-Subscribe ........................................... 1055
Prädikat ................................................................ 298
Pulldown-Menü ................................................. 748
Pragma ............................................................... 1004
PushbackInputStream, Klasse ....................... 474
Preimage-Angriff ............................................. 1372
PushbackReader, Klasse ................................... 474
PreparedStatement, Schnittstelle ... 1168, 1187
put(), Map ............................................................. 231
Primzahlen .......................................................... 304
PUT, HTTP-Methode ...................................... 1000
Principal .................................................. 1363, 1368
print() .................................................................... 455
Q
Printable, Schnittstelle .................................... 944
PrinterJob, Klasse .............................................. 944
QuadCurve2D, Klasse ....................................... 888
printf() .................................................................. 455
Quadratische Kurvensegmente ..................... 890
PrintJob, Klasse .................................................. 944
quadTo(), GeneralPath ..................................... 891
println() ................................................................ 455
Quartz ................................................................... 172
PrintService, Schnittstelle .............................. 946
Quellcode-Verschönerer ............................... 1408
PrintStream ......................................................... 455
Query-String ........................................................ 973
PrintWriter .......................................................... 455
Queue, Schnittstelle ........................ 184, 220–221
Priorität, Thread .................................................. 87
Quoted Printing Encoding ........................... 1020
Prioritätswarteschlange .................................... 87
1426
Index
R
Request-Header ............................................... 1002
ResourceBundle, Klasse ................................... 313
Race condition .................................................... 102
Response-Header ................................. 1002, 1005
Race hazard .......................................................... 102
RESTful Web-Services ..................................... 1058
RadialGradientPaint ......................................... 897
Result, Schnittstelle .......................................... 613
Rahmen ................................................................. 699
ResultSet, Schnittstelle .................................. 1169
RandomAccess, Schnittstelle ......................... 197
ResultSetMetaData, Schnittstelle ............... 1191
RandomAccessFile, Klasse ............................... 379
resume(), Thread ................................................. 87
readAttributes() , Files ...................................... 398
RetentionPolicy, Aufzählung ....................... 1279
Reader, Klasse ..................................................... 451
Retry-After, Response-Header ..................... 1005
readLine(), BufferedReader ............................. 473
Reverse Engineering ....................................... 1404
readObject(), ObjectInputStream .................. 505
RFC ......................................................................... 956
readResolve() ....................................................... 515
RFC 2616 ............................................................... 998
readSymbolicLink(), Files ................................ 408
RGB ........................................................................ 902
readUTF(), RandomAccessFile ........................ 382
Rhino ................................................................... 1306
ReadWriteLock, Schnittstelle ......................... 109
Rich Text Format ............................................... 692
rebind(), Registry ............................................ 1048
RMI ...................................................................... 1037
Rectangle2D, Klasse .......................................... 888
RMI Wire Protocol ........................................... 1039
RectangularShape, Klasse ................................ 888
rmi:// .................................................................. 1048
Reentrant ............................................................. 122
rmic, Dienstprogramm .................................. 1044
Reentrant, Klasse ...................................... 106, 125
RMIClassLoader, Klasse ................................. 1053
ReentrantReadWriteLock, Klasse .................. 109
rmid, Dienstprogramm ................................. 1055
Reference Concrete Syntax ............................. 533
RMI-Klassenlader ............................................ 1052
Referenced-Meldung ..................................... 1050
RMI-Logging ..................................................... 1050
Reflection .......................................................... 1227
rmiregistry, Dienstprogramm .......... 1046, 1198
ReflectiveOperationException ................... 1242
RMI-Transportschicht .................................... 1039
ReflectPermission ........................................... 1366
Rollbalken ............................................................ 733
Registry ................................................... 1038, 1045
Rollenbasierte Rechtevergabe ..................... 1367
REGISTRY_PORT, Registry ............................ 1045
Rollrad .................................................................. 705
Relationales Datenbanksystem .................. 1148
Ron Rivest .......................................................... 1371
Remote Manager ............................................. 1325
Rotation ............................................................... 941
Remote Object Activation ............................ 1054
RoundRectangle2D, Klasse ............................. 888
Remote Procedure Call .................................. 1037
RowFilter, Klasse ............................................... 807
Remote, Schnittstelle ..................................... 1042
RowSet, Schnittstelle ...................................... 1182
RenderedImage, Schnittstelle ........................ 929
RPC ....................................................................... 1037
Rendering-Algorithmus ................................... 941
RTF ......................................................................... 692
Renderpack Render Pipelines ........................ 809
run(), Runnable .................................................... 65
Rendezvous .................................................. 84, 145
Runnable, Schnittstelle ..................................... 65
repaint() ................................................................ 869
Runtime Packages ........................................... 1355
replaceAll(), Collections ................................... 279
RuntimePermission ....................................... 1366
ReplicateScaleFilter, Klasse ............................. 929
Representational State Transfer (REST) .... 1059
Request .............................................................. 1000
S
Request For Comment ...................................... 956
Sandbox ............................................................. 1357
requestFocusInWindow(), JComponent ...... 702
Saturation ............................................................ 902
1427
Index
SAX ........................................................................ 545
Semantisches Ereignis ..................................... 674
SAXBuilder .......................................................... 591
Semaphore, Klasse ............................................. 139
SAXBuilder, Klasse ............................................ 591
SEPTEMBER, Calendar ...................................... 323
SAXParser, Klasse .............................................. 584
Sequence, Klasse ................................................ 642
SCALE_AREA_AVERAGING, Image ............... 927
SequenceInputStream, Klasse ........................ 447
SCALE_DEFAULT, Image .................................. 927
Sequencer ............................................................. 642
SCALE_FAST, Image .......................................... 927
Sequencer, Schnittstelle .................................. 642
SCALE_REPLICATE, Image ............................... 927
Sequenz ....................................................... 176, 183
SCALE_SMOOTH, Image .................................. 927
Serializable, Schnittstelle ................................ 508
Schablonen-Muster .......................................... 443
SerializablePermission .................................. 1366
Schaltjahr ............................................................. 306
serialPersistentFields ....................................... 511
ScheduledThreadPoolExecutor,
serialver, Kommandozeilenprogramm ...... 519
Klasse ............................................................ 89, 97
serialVersionUID ................................................ 518
Scheduler ............................................................... 98
Server ................................................................. 1038
Schema ................................................................. 539
Server, Response-Header .............................. 1005
schemagen, JDK-Tool ....................................... 554
ServerSocket, Klasse .......................................... 989
Scherung .............................................................. 941
Service ................................................................ 1221
Schieberegler ...................................................... 733
ServiceLoader, Klasse ......................... 1160, 1221
Schlange ............................................................... 184
Service-Provider .............................................. 1222
Schlüssel .............................................................. 184
Servlet ................................................................ 1080
Schlüsselpaare .................................................. 1369
Servlet-Container ............................................ 1080
Schlüsselspeicher ............................................ 1370
Session, Klasse ...................................... 1021, 1027
Schriftlinie ........................................................... 877
Set, Schnittstelle ........................................ 183, 208
Schwyzerdütsch ................................................. 316
setAttribute(), Files ............................................ 405
Screen_Updater ................................................... 78
setBorder(), JComponent ................................. 699
ScriptEngine, Schnittstelle ........................... 1307
setContentType(), JEditorPane ....................... 692
ScriptEngineManager, Klasse ...................... 1307
setDefaultCloseOperation(), JFrame ... 647, 667
Scriptlet .............................................................. 1105
setDefaultRenderer(), JTable ........................... 800
Scrollable, Schnittstelle ................................... 714
setDoInput(), URLConnection ............... 967, 977
Scrollbar ............................................................... 733
setDoOutput(), URLConnection ........... 967, 977
ScrollPaneLayout, Klasse ................................ 732
setFont(), Graphics ............................................ 878
SECOND, Calendar ............................................. 329
setLayout(), Container ...................................... 717
SecretKey, Schnittstelle ................................. 1375
setLookAndFeel(), UIManager ........................ 830
SecretKeySpec, Klasse .................................... 1377
setModel(), JSpinner .......................................... 787
Secure Hash Algorithm ................................. 1372
setModel(), JTable .............................................. 794
Secure Hash Standard .................................... 1372
setPaint(), Graphics2D ...................................... 897
Secure Sockets Layer ...................................... 1033
setPriority(), Thread ............................................ 87
Security Manager ............................................ 1358
setProperty(), Properties ................................. 243
Security-API ...................................................... 1355
setRenderingHint(), Graphics2D ................... 887
SecurityException ........................................... 1363
setRequestMethod(), HttpURLConnection
SecurityManager ............................................. 1125
setRequestProperty(), URLConnection ....... 977
SecurityManager, Klasse ................... 1357–1358
setSize(), Window ............................................... 648
SecurityPermission ........................................ 1366
setText(), JButton ............................................... 677
SeekableByteChannel, Schnittstelle ... 422, 424
setText(), JLabel .................................................. 654
Sekunde ................................................................ 329
setText(), JTextComponent ............................. 685
1428
977
Index
setUseCaches(), URLConnection .................... 977
SocketPermission ............................................ 1366
setVisible(), Window ......................................... 648
Sockets .................................................................. 983
SGML ...................................................................... 532
SOCKS ................................................................. 1008
SHA ..................................................................... 1372
SoftBevelBorder, Klasse ................................... 699
Shallow Copy ....................................................... 234
Sommerzeitabweichung ................................. 329
Shamir, Adi ....................................................... 1371
sort(), Arrays ....................................................... 264
Shape, Schnittstelle .................................. 886, 888
sort(), Collections .............................................. 264
shared objects .................................................. 1343
SortedMap, Schnittstelle ................................. 230
ShellFolder, Klasse ............................................. 364
SortedSet, Schnittstelle ................................... 216
SHORT, DateFormat .......................................... 348
Sortieren .............................................................. 264
showConfirmDialog(), JOptionPane .... 821–822
Soundbank .......................................................... 641
showInputDialog(), JOptionPane .................. 822
Source, Schnittstelle ......................................... 613
showMessageDialog(), JOptionPane ............ 822
Sourcecode Beautifier .................................... 1408
showOptionDialog(), JOptionPane ............... 822
SpinnerDateModel, Klasse .............................. 788
SHS ...................................................................... 1372
SpinnerListModel, Klasse ................................ 787
Shutdown-Hook ................................................. 173
SpinnerModel, Schnittstelle .......................... 787
Sicherheitsmanager ................. 1357–1358, 1362
Splash-Screen ..................................................... 922
signal(), Condition ............................................. 125
Spring-Framework .......................................... 1221
Signierung .............................................. 1363, 1368
SpringLayout, Klasse ........................................ 717
Simple API for XML Parsing ............................ 545
SQLWarning, Klasse ........................................ 1180
Simple Logging Facade for Java .................. 1323
SQuirreL ............................................................. 1145
Simple Mail Transfer Protocol .................... 1019
SSL ........................................................................ 1033
SimpleDateFormat, Klasse .............................. 346
SSLSocket, Klasse ............................................. 1033
SimpleFileVisitor, Klasse ................................. 413
SSLSocketFactory, Klasse .............................. 1033
SIMPLIFIED_CHINESE, Locale ......................... 310
Stabil sortieren ................................................... 264
SINGLE_INTERVAL_SELECTION,
Stabiler Sortieralgorithmus ........................... 267
ListSelectionModel ....................................... 771
Stack ...................................................................... 218
SINGLE_SELECTION, ListSelectionModel .... 771
Stack, Klasse ........................................................ 218
Singleton .............................................................. 282
Standard Generalized Markup Language ... 532
Skalierung ............................................................ 941
Standard MBeans ............................................ 1325
Skipjack .............................................................. 1372
Standard Tag Library ...................................... 1101
Skript-Engine ................................................... 1306
Standard Widget Toolkit ................................. 862
Slash ....................................................................... 358
Standardberechtigungen .............................. 1364
sleep(), Thread ....................................................... 73
StandardCopyOption, Aufzählung ............... 396
SLF4J .................................................................... 1323
Standardserialisierung .................................... 502
Slider, Schieberegler ......................................... 733
Stapelspeicher .................................................... 218
Smart-Card ........................................................ 1368
start(), Thread ....................................................... 66
SMB (Server Message Block) ........................... 378
Statement, Schnittstelle ................................ 1168
SMTP ................................................................... 1019
Statusanzeige ..................................................... 745
SMTP-Server ..................................................... 1020
Statuscode ......................................................... 1003
SOAP ................................................................... 1071
Statuszeile ......................................................... 1002
SOAP Web-Services ......................................... 1058
StAX ....................................................................... 570
SOCK_DGRAM ................................................. 1032
Stellenwertsystem .............................................. 41
SOCK_STREAM ................................................ 1032
Stellvertreterobjekt ............................. 1035, 1044
Socket, Klasse ...................................................... 984
Sternzeit ............................................................... 305
1429
Index
STL-Bibliothek .................................................... 267
TableModel, Schnittstelle ....................... 791, 803
stop(), Thread ........................................................ 79
TableModelEvent, Klasse ................................. 795
Store-and-Forward .......................................... 1019
TableModelListener, Schnittstelle ................ 791
StreamEncoder ................................................... 491
TableRowSorter, Klasse .................................... 806
StreamFilter, Schnittstelle .............................. 578
Tag ................................................................. 328, 531
StreamTokenizer, Klasse ................................. 526
Tag des Jahres ..................................................... 329
StringReader, Klasse ................................ 439, 465
Tage im Monat .................................................... 333
StringWriter, Klasse .......................................... 463
Tagesdatum ......................................................... 332
Stroke, Schnittstelle .......................................... 908
TagLib ................................................................. 1101
Subject ................................................................ 1368
TagLib-Deskriptor ........................................... 1101
Subprotokoll ..................................................... 1164
TAI .......................................................................... 306
SUID ....................................................................... 519
TAIWAN ................................................................ 310
sun.jdbc.odbc.JdbcOdbcDriver .................... 1161
Tango Desktop Projekt ..................................... 659
sun.nio.cs ............................................................. 491
Tar-Archiv ............................................................ 626
suspend(), Thread ................................................ 87
Task, Fork and Join ............................................ 152
SWIG .................................................................... 1353
Tastatur-Shortcut .............................................. 753
Swing JavaBuilder ............................................. 861
Tastenkürzel ........................................................ 753
swing.properties ................................................ 830
TCP ...................................................................... 1012
SwingUtilities, Klasse ....................................... 849
TCP/IP .................................................................... 983
SwingWorker, Klasse ........................................ 851
Tear-off-Menü ..................................................... 749
SwingWT .............................................................. 863
Teile und herrsche ............................................. 149
SWT ........................................................................ 862
Teletubbies .......................................................... 975
SWTSwing ............................................................ 863
template pattern ................................................ 443
Symbolleiste ....................................................... 756
Template-Code ................................................ 1090
sync() ............................................................ 435–436
Terminiert .............................................................. 76
Synchronisation .................................................. 98
TextArea, Klasse ................................................. 688
synchronized, Schlüsselwort ......................... 113
TextLayout, Klasse ............................................ 885
synchronizedCollection(), Collections ........ 286
TexturePaint ....................................................... 897
synchronizedList(), Collections ..................... 286
Thread, Klasse ....................................................... 66
synchronizedMap(), Collections ................... 286
ThreadDeath, Klasse ........................................... 83
synchronizedSet(), Collections ...................... 286
ThreadGroup, Klasse ......................................... 162
synchronizedSortedMap(), Collections ...... 286
Thread-Gruppe ................................................... 166
synchronizedSortedSet(), Collections ......... 286
Thread-local storage (TLS) ............................... 156
System.in .................................................... 445, 460
ThreadLocal, Klasse ........................................... 156
SystemColor ........................................................ 897
ThreadLocalRandom, Klasse .......................... 161
SystemColor, Klasse ......................................... 903
Thread-lokale Variablen .................................. 156
Systemfarben ..................................................... 903
Thread-Pool ........................................................... 89
SystemTray, Klasse ........................................... 764
ThreadPoolExecutor, Klasse ............................. 89
Thread-safe ............................................................ 99
T
Thread-sicher ........................................................ 99
tick marks ............................................................ 733
TableCellEditor, Schnittstelle ........................ 801
Tiefe Objektkopie ............................................... 515
TableCellRenderer, Schnittstelle ................... 798
Timeout ............................................................. 1039
TableColumn, Klasse ........................................ 803
Timer, Klasse ....................................................... 171
TableLayout, Klasse .......................................... 732
Timer, Swing-Klasse ................................. 855–856
1430
Index
TimerTask, Klasse .............................................. 171
UIDefaults, Klasse ............................................. 656
Timestamp, Klasse .......................................... 1173
UI-Delegate .......................................................... 708
TimeUnit, Aufzählung ...................................... 307
UIManager, Klasse ............................................ 830
Titelleiste .............................................................. 652
UK, Locale ............................................................ 310
TitledBorder, Klasse .......................................... 699
Umrisslinie .......................................................... 908
TLS ....................................................................... 1033
Umrisslinie, Stroke ........................................... 896
toArray(), Collection .......................................... 204
UncaughtExceptionHandler, Schnittstelle .. 81
Tödliche Umarmung ......................................... 119
UNDECIMBER, Calendar .................................. 323
Tomcat ............................................................... 1083
Undo/Redo .......................................................... 842
Toolkit, Klasse ..................................................... 650
UndoableEditEvent, Klasse ............................. 844
Topic, JMS .......................................................... 1055
UndoManager, Klasse ...................................... 842
Top-Level-Container ......................................... 645
UnicastRemoteObject, Klasse ...................... 1048
Transferable, Schnittstelle .............................. 837
Unicast-Verbindung ....................................... 1033
Transfer-Encoding .......................................... 1004
Uniform Resource Locator ............................. 957
TransferHandler, Klasse ................................... 841
Universal Time ................................................... 306
Transfer-Objekt ............................................... 1262
UnknownHostException ................................ 985
Transformation .................................................. 896
unlock(), Lock ..................................................... 106
transient, Schlüsselwort .................................. 511
Unmarshaller, Schnittstelle ........................... 549
translate(), Graphics .......................................... 936
UnsatisfiedLinkError ...................................... 1339
Transparency, Schnittstelle ............................ 897
UnsupportedOperationException ..... 181, 202,
TransparentLayout ............................................ 732
251, 271
Transport Layer Security .............................. 1033
Unterlänge .......................................................... 884
Transportschicht ............................................. 1038
Untermenü .......................................................... 748
TrayIcon, Klasse ................................................. 764
Unterstrich
TreeMap, Klasse ....................... 176, 185–186, 229
in Zahlen ............................................................ 42
TreeModel, Schnittstelle ......................... 809, 811
Upgrade .............................................................. 1004
TreeNode, Schnittstelle .................................... 811
URI (Uniform Resource Identifier) ............... 957
TreeSelectionListener, Schnittstelle ............. 811
URI, Klasse ........................................................... 957
TreeSet, Klasse .................................................... 214
URL ........................................................................ 958
TrueType-Zeichensatz ...................................... 881
URL, Klasse .......................................................... 958
TrueZIP .................................................................. 626
URLConnection, Klasse .................................... 965
try mit Ressourcen .............................................. 51
URLDecoder, Klasse ................................. 974–975
Tupel ................................................................... 1139
URLEncoder, Klasse .......................................... 974
TYPE, Wrapper-Klasse .................................... 1229
US, Locale ............................................................. 310
TYPE_INT_RGB, BufferedImage ..................... 924
user.timezone .................................................... 324
TYPE_SCROLL_INSENSITIVE, ResultSet .... 1176
UserDefinedFileAttributeView,
Types, Klasse .................................................... 1170
Schnittstelle .................................................... 405
tz database ........................................................... 339
UTC ........................................................................ 306
UTF-16 ................................................................... 535
U
UTF-8 ..................................................................... 535
UTF-8-Format
Überblendung, Grafik ....................................... 907
modifiziertes ................................................... 383
Überwachtes Warten ........................................ 131
UTF-8-Kodierung ............................................... 383
UDP .......................................................... 1011–1012
UUencode .......................................................... 1020
1431
Index
V
Weichzeichnen .......................................... 871, 941
Weld .................................................................... 1224
Valid, XML ........................................................... 535
Well-known System Ports ............................... 984
validateProperty(), Validator ....................... 1210
Wettlaufsituation .............................................. 102
Validation, Klasse ............................................ 1209
WHITE, Color ....................................................... 900
Validator, Schnittstelle .................................. 1209
WIND_NON_ZERO, GeneralPath ................... 893
Value ..................................................................... 184
Winding Rule ...................................................... 892
values(), Map ....................................................... 238
windowClosed(), WindowListener ................ 667
Vary, Response-Header ................................. 1005
windowClosing(), WindowListener .............. 667
Vector, Klasse ..................................................... 188
WindowEvent, Klasse ....................................... 665
Verbindungsloses Protokoll ........................ 1011
WindowListener, Schnittstelle ....................... 662
Verbindungsorientiert .................................. 1011
Windows Icon-Format ...................................... 915
Verkettete Liste ......................................... 177, 200
Windungsregel ................................................... 892
Verklemmung .................................................... 119
Woche .................................................................... 328
Verlaufsbalken ................................................... 745
Woche des Monats ............................................ 328
Verschiebung ...................................................... 941
Wohlgeformt ....................................................... 534
Verzeichnis anlegen ......................................... 365
Word-Dokumente .............................................. 623
Verzeichnis umbenennen .............................. 365
Worker-Thread ................................................... 853
Via ........................................................................ 1004
work-stealing ...................................................... 153
View ....................................................................... 765
writeObject(), ObjectOutputStream ............. 504
ViewPortLayout, Klasse ................................... 732
Writer, Klasse ...................................................... 449
volatile, Schlüsselwort ..................................... 146
writeReplace() ..................................................... 515
Vorschaubild ...................................................... 915
writeUTF(), RandomAccessFile ...................... 382
wsimport, Dienstprogramm ............ 1074, 1076
W
Wurzelelement ................................................... 595
Wurzelverzeichnis ............................................. 373
wait(), Object .............................................. 124, 135
WWW-Authenticate, Response-Header .... 1005
Wait-free-Algorithmus .................................... 284
walkFileTree(), Files .......................................... 413
Warning, Response-Header .......................... 1005
X
Warning:Applet Window .............................. 1363
X.509 ................................................................... 1369
Watchable, Schnittstelle .................................. 421
XAML ..................................................................... 861
WatchEvent, Klasse ........................................... 421
Xerces .................................................................... 546
WatchKey, Klasse .............................................. 421
XFire, Codehaus ............................................... 1073
WatchService, Klasse ........................................ 420
XHTML .................................................................. 543
WAV ....................................................................... 641
xjc ........................................................................... 565
Web Application Security ............................. 1121
XML ........................................................................ 532
WebApplicationException ............................ 1069
XMLDecoder, Klasse .......................................... 522
Webbrowser ........................................................ 692
XMLEncoder, Klasse .......................................... 522
WebRowSet, Schnittstelle ................. 1183–1184
XMLEvent, Klasse ............................................... 571
Web-Service ...................................................... 1058
XMLEventFactory, Klasse ................................ 579
Webstart ............................................................. 1137
XMLEventReader, Klasse ................................. 576
Wechselknopf ..................................................... 682
XMLEventReader, Schnittstelle ..................... 579
WEEK_OF_MONTH, Calendar ........................ 328
XMLEventWriter, Klasse .................................. 572
WEEK_OF_YEAR, Calendar ............................. 328
XMLEventWriter, Schnittstelle ...................... 580
1432
Index
XMLGregorianCalendar, Klasse ..................... 562
Z
XMLInputFactory, Klasse ................................ 579
XMLOutputFactory, Klasse .................... 579–580
Zehnersystem ....................................................... 41
XMLOutputter, Klasse ...................................... 592
Zeichenbereich ................................................... 896
XMLStreamConstants, Schnittstelle ............ 572
Zeitablauf ........................................................... 1039
XMLStreamReader, Schnittstelle .................. 571
Zeitgenauigkeit .................................................. 317
XMLStreamWriter, Klasse ............................... 572
Zeitzone ....................................................... 306, 351
XMLStreamWriter, Schnittstelle .......... 579–580
Zeitzonenabweichung ..................................... 329
XMLVM .............................................................. 1294
Zertifizierungsstelle ....................................... 1368
XOR ........................................................................ 867
ZipEntry, Klasse ................................................. 633
Xor-Modus, Zeichnen ....................................... 907
ZipFile, Klasse ..................................................... 633
XPath ............................................................ 606, 610
ZONE_OFFSET, Calendar ................................. 329
XPath, Klasse ....................................................... 607
Zugriffsmodifizierer ....................................... 1245
XPath-Wurzel ...................................................... 606
Zustände, Threads ............................................... 72
XSLT ....................................................................... 610
Zwischenablage .................................................. 836
XStream ................................................................ 525
Zyklische Redundanzprüfung ....................... 499
Y
YAJSW ................................................................. 1409
YEAR, Calendar ................................................... 328
yield(), Thread ....................................................... 75
1433
Herunterladen