Java SE 9-Standard-Bibliothek: das Handbuch für Entwickler
Gespeichert in:
Vorheriger Titel: | Ullenboom, Christian SE 8 Standard-Bibliothek |
---|---|
1. Verfasser: | |
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Bonn
Rheinwerk Computing
2018
|
Ausgabe: | 3., aktualisierte und überarbeitete Auflage |
Schlagworte: | |
Online-Zugang: | Volltext Inhaltstext Inhaltsverzeichnis |
Beschreibung: | "Zweite Insel ; Datenstrukturen und Algorithmen, Stream-API, Nebenläufigkeit, XML, JDBC, Swing und JavaFX, Netzwerkprogrammierung, Datum und Zeit, JNI, Sicherheit, String-Verarbeitung" - Umschlag |
Beschreibung: | 1447 Seiten Illustrationen, Diagramme |
ISBN: | 9783836258746 3836258749 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV044414038 | ||
003 | DE-604 | ||
005 | 20190320 | ||
007 | t | ||
008 | 170718s2018 gw a||| |||| 00||| ger d | ||
016 | 7 | |a 1130667928 |2 DE-101 | |
020 | |a 9783836258746 |c hbk. |9 978-3-8362-5874-6 | ||
020 | |a 3836258749 |9 3-8362-5874-9 | ||
035 | |a (OCoLC)1013885992 | ||
035 | |a (DE-599)DNB1130667928 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-NW | ||
049 | |a DE-1102 |a DE-M347 |a DE-91G |a DE-739 |a DE-19 |a DE-11 |a DE-859 |a DE-20 |a DE-860 |a DE-Aug4 |a DE-634 |a DE-1050 |a DE-83 |a DE-573 |a DE-29T | ||
082 | 0 | |a 005.133 |2 22/ger | |
082 | 0 | |a 004 |2 23 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 362f |2 stub | ||
100 | 1 | |a Ullenboom, Christian |e Verfasser |0 (DE-588)123404738 |4 aut | |
245 | 1 | 0 | |a Java SE 9-Standard-Bibliothek |b das Handbuch für Entwickler |c Christian Ullenboom |
246 | 1 | 3 | |a Java SE neun Standard-Bibliothek |
246 | 1 | 3 | |a Java SE 9 Standard-Bibliothek |
250 | |a 3., aktualisierte und überarbeitete Auflage | ||
264 | 1 | |a Bonn |b Rheinwerk Computing |c 2018 | |
300 | |a 1447 Seiten |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a "Zweite Insel ; Datenstrukturen und Algorithmen, Stream-API, Nebenläufigkeit, XML, JDBC, Swing und JavaFX, Netzwerkprogrammierung, Datum und Zeit, JNI, Sicherheit, String-Verarbeitung" - Umschlag | ||
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java Standard Edition 9 |0 (DE-588)113696553X |2 gnd |9 rswk-swf |
653 | |a JavaFX | ||
653 | |a Swing | ||
653 | |a RMI | ||
653 | |a JNI | ||
653 | |a Threads | ||
653 | |a Netzwerkprogrammierung | ||
653 | |a SE 9 | ||
653 | |a Java programmieren | ||
653 | |a Java Standard Edition | ||
653 | |a Java entwickeln | ||
653 | |a Java Entwickler | ||
689 | 0 | 0 | |a Java Standard Edition 9 |0 (DE-588)113696553X |D s |
689 | 0 | 1 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | |5 DE-604 | |
710 | 2 | |a Rheinwerk Verlag |0 (DE-588)1081738405 |4 pbl | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe (PDF, ePub, Mobi, Online) |z 978-3-8362-5875-3 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, Bundle Buch + E-Book; E-Book Formate (PDF, ePub, Mobi, Online) |z 978-3-8362-5877-7 |
780 | 0 | 0 | |i Fortsetzung von |a Ullenboom, Christian |t SE 8 Standard-Bibliothek |b 2. Auflage |d 2014 |w (DE-604)BV041974891 |
856 | 4 | 1 | |u http://openbook.rheinwerk-verlag.de/java8/ |x Verlag |z kostenfrei |3 Volltext |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=f596de1fc66241a891d0e84771c79c97&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029815776&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
912 | |a ebook | ||
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-029815776 |
Datensatz im Suchindex
_version_ | 1806413819578155008 |
---|---|
adam_text |
Inhalt
Vorwort. 35
1 Neues in Java 9 43
1.1 Klassenlader (Class Loader) und Modul-/Klassenpfad. 43
1.1.1 Klassen laden auf Abruf. 43
1.1.2 Klassenlader bei der Arbeit Zusehen. 44
1.1.3 JMOD-Dateien und JAR-Dateien. 45
1.1.4 Woher die kleinen Klassen kommen: die Suchorte und spezielle
Klassenlader. 46
1.1.5 Setzen des Modulpfades. 47
1.2 Module entwickeln und einbinden. 49
1.2.1 Wer sieht wen. 49
1.2.2 Plattform-Module und JMOD-Beispiel. 50
1.2.3 Verbotene Plattformeigenschaften nutzen, -add-exports. 51
1.2.4 Plattformmodule einbinden, --add-modules und -add-opens. 53
1.2.5 Projektabhängigkeiten in Eclipse. 55
1.2.6 Benannte Module und module-info.java. 57
1.2.7 Automatische Module. 61
1.2.8 Unbenanntes Modul. 62
1.2.9 Lesbarkeit und Zugreifbarkeit. 62
1.2.10 Modul-Migration . 63
1.3 Sprachänderungen in Java 9. 64
1.4 Bibliotheksänderungen in Java 9. 65
1.5 Änderungen in den Werkzeugen von Java 9. 65
1.6 JDK 9-HotSpot-JVM-Änderungen. 66
1.7 Zum Weiterlesen. 66
2 Die Klassenbibliothek 67
2.1 Die Java-Klassenphilosophie. 67
2.1.1 Modul, Paket, Typ. 67
2.1.2 Übersicht über die Pakete der Standardbibliothek. 70
5
Inhalt
2.2 Die Utility-Klassen System und Properties. 74
2.2.1 Systemeigenschaften der Java-Umgebung. 76
2.2.2 Zeilenumbruchzeichen, line.separator. 77
2.2.3 Eigene Properties von der Konsole aus setzen *. 78
2.2.4 Umgebungsvariablen des Betriebssystems *. 80
2.2.5 Einfache Zeitmessung und Profiling*. 81
2.3 Versionskennungen auslesen, aufbauen, parsen und vergleichen. 84
2.4 Einfache Benutzereingaben. 86
2.4.1 Grafischer Eingabedialog über JOptionPane. 86
2.4.2 Geschützte Passwort-Eingaben mit der Klasse Console *. 87
2.5 Benutzereinstellungen *. 88
2.5.1 Benutzereinstellungen mit der Preferences-API. 89
2.5.2 Einträge einfügen, auslesen und löschen. 90
2.5.3 Auslesen der Daten und Schreiben in einem anderen Format. 92
2.5.4 Auf Ereignisse horchen. 92
2.5.5 Zugriff auf die gesamte Windows-Registry. 94
2.6 Maven: Build-Management und Abhängigkeiten auflösen. 95
2.6.1 Beispielprojekt in Eclipse mit Maven. 95
2.6.2 Properties hinzunehmen. 96
2.6.3 Dependency hinzunehmen. 96
2.6.4 Lokales-und Remote-Repository. 98
2.6.5 Lebenszylus, Phasen und Maven-Plugins. 98
2.6.6 Archetypes. 98
2.7 Zum Weiterlesen. 99
3 Fortgeschrittene String-Verarbeitung 101
3.1 Erweiterte Zeicheneigenschaften. 101
3.1.1 isXXX(.)-Methoden. 101
3.1.2 Unicode-Blöcke. 102
3.1.3 Unicode-Skripte. 103
3.2 Reguläre Ausdrücke. 104
3.2.1 Pattern.matches(.) bzw. String#matches(.). 104
3.2.2 Die Klassen Pattern und Matcher. 108
3.2.3 Finden und nicht matchen. 113
3.2.4 Gruppen . 114
3.2.5 Gierige und nicht gierige Operatoren *. 115
6
Inhalt
3.2.6 Mit MatchResult alle Ergebnisse einsammeln*. 116
3.2.7 Suchen und Ersetzen mit Mustern. 118
3.2.8 Hangman Version 2. 121
3.3 Zerlegen von Zeichenketten. 122
3.3.1 Zerlegen von Zeichensequenzen über String oder Pattern. 122
3.3.2 Mehr vom Scanner. 123
3.3.3 Die Klasse StringTokenizer *. 129
3.3.4 Breaklterator als Zeichen-, Wort-, Zeilen- und Satztrenner *. 130
3.3.5 StreamTokenizer*. 133
3.4 Zeichenkodierungen, XNIL/HTWIL-Entities, Base64 *. 137
3.4.1 Unicode und 8-Bit-Abbildungen/Unicode Encoding. 137
3.4.2 Kodierungen über die Klasse String vornehmen. 137
3.4.3 Das Paket java.nio.charset und der Typ Charset. 138
3.4.4 Konvertieren mit OutputStreamWriter/lnputStreamReader-Klassen. 139
3.4.5 XML/HTML-Entities ausmaskieren. 140
3.4.6 Base64-Kodierung. 141
3.5 Ausgaben formatieren. 142
3.5.1 Die Formatter-Klasse *. 142
3.5.2 Formatieren mit Masken *. 145
3.5.3 Format-Klassen. 146
3.5.4 Zahlen, Prozente und Währungen mit NumberFormat und
DecimalFormat formatieren *. 149
3.5.5 MessageFormat und Pluralbildung mit ChoiceFormat. 152
3.6 Sprachabhängiges Vergleichen und Normalisierung *. 154
3.6.1 Die Klasse Collator. 154
3.6.2 Effiziente interne Speicherung für die Sortierung. 157
3.6.3 Normalisierung. 158
3.7 Phonetische Vergleiche*. 159
3.8 Zum Weiterlesen. 160
4 Datenstrukturen und Algorithmen m
4.1 Datenstrukturen und die Collection-API. 161
4.1.1 Designprinzip mit Schnittstellen, abstrakten und konkreten Klassen. 162
4.1.2 Die Basisschnittstellen Collection und Map. 162
4.1.3 Die Utility-Klassen Collections und Arrays. 163
4.1.4 Das erste Programm mit Container-Klassen. 163
7
164
168
170
172
173
173
174
175
175
181
183
184
186
187
190
191
191
193
195
195
197
200
201
201
203
204
204
209
210
211
212
214
222
222
224
225
225
226
229
232
4.1.5 Die Schnittstelle Collection und Kernkonzepte.
4.1.6 Schnittstellen, die Collection erweitern, und Map.
4.1.7 Konkrete Container-Klassen.
4.1.8 Generische Datentypen in der Collection-API.
4.1.9 Die Schnittstelle Iterable und das erweiterte for.
Listen.
4.2.1 Erstes Listen-Beispiel .
4.2.2 Auswahlkriterium ArrayList oder LinkedList.
4.2.3 Die Schnittstelle List.
4.2.4 ArrayList.
4.2.5 LinkedList.
4.2.6 Der Array-Adapter Arrays.asList(.) .
4.2.7 Listlterator*.
4.2.8 toArray(.„) von Collection verstehen ֊ die Gefahr einer Falle erkennen
4.2.9 Primitive Elemente in Datenstrukturen verwalten.
Mengen (Sets).
4.3.1 Ein erstes Mengen-Beispiel.
4.3.2 Methoden der Schnittstelle Set.
4.3.3 HashSet.
4.3.4 TreeSet-die sortierte Menge.
4.3.5 Die Schnittstellen NavigableSet und SortedSet.
4.3.6 LinkedHashSet.
Queues (Schlangen) und Deques.
4.4.1 Queue-Klassen.
4.4.2 Deque-Klassen.
4.4.3 Blockierende Queues und Prioritätswarteschlangen.
4.4.4 PriorityQueue.
Stack (Kellerspeicher, Stapel).
4.5.1 Die Methoden von java.util.Stack.
Assoziative Speicher.
4.6.1 Die Klassen HashMap und TreeMap.
4.6.2 Einfügen und Abfragen des Assoziativspeichers.
4.6.3 Über die Bedeutung von equals(.) und hashCode() bei Elementen.
4.6.4 Eigene Objekte hashen.
4.6.5 LinkedHashMap und LRU-Implementierungen.
4.6.6 IdentityHashMap.
4.6.7 Das Problem veränderter Elemente.
4.6.8 Aufzählungen und Ansichten des Assoziativspeichers.
4.6.9 Die Arbeitsweise einer Hash-Tabelle *.
4.6.10 Die Properties-Klasse.
Inhalt
4.7 Immutable Datenstrukturen. 235
4.7.1 Nichtänderbare Datenstrukturen, Immutable oder nur Lesen?. 23$
4.7.2 Null Object Pattern und leere Sammlungen/Iteratoren zurückgeben. 237
4.7.3 Immutable Datenstrukturen mit einem Element: Singletons. 239
4.7.4 Collections.unmodiflableXXX(„.). 240
4.7.5 Statische ofXXX(.)-Methoden zum Aufbau unveränderbarer Set-,
List-, Map-Datenstrukturen. 243
4.8 Mit einem Iterator durch die Daten wandern. 245
4.8.1 Iterator-Schnittstelle. 245
4.8.2 Der Iterator kann (eventuell auch) löschen. 246
4.8.3 Operationen auf allen Elementen durchführen. 247
4.8.4 Einen Zufallszahlen-Iterator schreiben. 247
4.8.5 Iteratoren von Sammlungen, das erweiterte for und Iterable. 248
4.8.6 Fail-Fast-lteratorunddleConcurrentModificationException. 252
4.8.7 Die Schnittstelle Enumeration *. 253
4.9 Algorithmen in Collections. 255
4.9.1 Die Bedeutung von Ordnung mit Comparator und Comparable. 255
4.9.2 Sortieren. 250
4.9.3 Den größten und kleinsten Wert einer Collection finden. 259
4.9.4 Echte typsichere Container. 262
4.9.5 Mit der Halbierungssuche nach Elementen fahnden. 263
4.9.6 Ersetzen, Kopieren, Füllen, Umdrehen, Rotieren *. 264
4.9.7 Listen durchwürfeln *.֊ 266
4.9.8 Häufigkeit eines Elements *. 267
4.9.9 nCoples(.) *. 267
4.10 Datenstrukturen mit Änderungsmeldungen. 268
4.10.1 Das Paket javafx.collections. 268
4.10.2 Fabrikmethoden in FXCollections. 269
4.10.3 Änderungen melden über InvalidationListener. 271
4.10.4 Änderungen melden über XXXChangeListener. 271
4.10.5 Change-Klassen. 272
4.10.6 Weitere Hilfsmethoden einer Observableüst. 275
4.10.7 Melden von Änderungen an Arrays. 276
4.10.8 Transformierte FXCollections. 276
4.10.9 Weitere statische Methoden in FXCollections. 277
4.11 Stream-API. 278
4.11.1 Streamerzeugen. 281
4.11.2 Terminale Operationen. 284
4.11.3 Intermediäre Operationen. 295
4.11.4 Streams mit primitiven Werten. 301
9
Inhalt
4.11.5 Stream-Beziehungen, AutoCloseable. 312
4.11.6 Stream-Builder. 314
4.11.7 Spliterator,. 315
4.11.8 Klasse StreamSupport. 316
4.12 Spezielle threadsichere Datenstrukturen. 317
4.12.1 Zu Beginn nur synchronisierte Datenstrukturen in Java 1.0. 317
4.12.2 Nichtsynchronisierte Datenstrukturen in der Standard-Collection-API. 317
4.12.3 Nebenläufiger Assoziativspeicher und die Schnittstelle ConcurrentMap. 318
4.12.4 ConcurrentLinkedQueue. 318
4.12.5 CopyOnWriteArrayList und CopyOnWrlteArraySet. 319
4.12.6 Wrapper zur Synchronisation. 319
4.12.7 Blockierende Warteschlangen. 320
4.12.8 ArrayBIockingQueue und LinkedBlockingQueue. 321
4.12.9 PriorityBIockingQueue. 323
4.12.10 Transfer-Warteschlangen -TransferQueue und LinkedTransferQueue. 326
4.13 Google Guava (Google Collections Library). 327
4.13.1 Beispiel Multi-Set und Multi-Map. 327
4.13.2 Datenstrukturen aus Guava. 328
4.13.3 Utility-Klassen von Guava. ՛ 330
4.13.4 Prädikate. 331
4.13.5 Transformationen. 332
4.14 Die Klasse BitSet für Bitmengen *. 332
4.14.1 Ein BitSet anlegen. 333
4.14.2 BitSet füllen und Zustände erfragen. 334
4.14.3 Mengenorientierte Operationen. 335
4.14.4 Weitere Methoden von BitSet. 336
4.14.5 Primzahlen in einem BitSet verwalten. 337
4.15 Zum Weiterlesen. 338
5 Threads und nebenläufige Programmierung 339
5.1 Threads erzeugen. 339
5.1.1 Threads über die Schnittstelle Runnable Implementieren. 339
5.1.2 Thread mit Runnable starten. 340
5.1.3 Die Klasse Thread erweitern. 342
5.2 Thread-Eigenschaften und Zustände. 344
5.2.1 Der Name eines Threads. 344
5.2.2 Wer bin ich? . 345
10
Inhalt
5.2.3 Die Zustände eines Threads*. 346
5.2.4 Schläfer gesucht. 347
5.2.5 Mit yield() und onSpinWait() auf Rechenzeit verzichten. 348
5.2.6 Der Thread als Dämon. 349
5.2.7 Freiheit für den Thread-das Ende. 351
5.2.8 Einen Thread höflich mit Interrupt beenden. 352
5.2.9 UncaughtExceptionHandler für unbehandelte Ausnahmen. 354
5.2.10 Der stopO von außen und die Rettung mit ThreadDeath *. 355
5.2.11 Ein Rendezvous mit join(.) *. 356
5.2.12 Arbeit niederlegen und wiederaufnehmen *. 358
5.2.13 Priorität*. 359
5.3 Der Ausführer (Executor) kommt. 360
5.3.1 Die Schnittstelle Executor. 361
5.3.2 Glücklich in der Gruppe-die Thread-Pools. 362
5.3.3 Threads mit Rückgabe über Callable. 364
5.3.4 Mehrere Callable-Objekte abarbeiten. 368
5.3.5 ScheduledExecutorService für wiederholende Ausgaben und
Zeitsteuerungen nutzen. 369
5.3.6 Asynchrones Programmieren mit CompletableFuture (CompletionStage) . 369
5.4 Synchronisation über kritische Abschnitte. 372
5.4.1 Gemeinsam genutzte Daten. 372
5.4.2 Probleme beim gemeinsamen Zugriff und kritische Abschnitte. 372
5.4.3 Punkte nebenläufig initialisieren. 374
5.4.4 i++sieht atomar aus, ist es aber nicht’. 376
5.4.5 Kritische Abschnitte schützen. 377
5.4.6 Kritische Abschnitte mit ReentrantLock schützen. 379
5.4.7 Synchronisieren mit synchronized. 386
5.4.8 Synchronized-Methoden der Klasse StringBuffer *. 387
5.4.9 Mit synchronized synchronisierte Blöcke. 388
5.4.10 Dann machen wir doch gleich alles synchronisiert!. 389
5.4.11 Lock-Freigabe im Fall von Exceptions. 390
5.4.12 Deadlocks. 391
5.4.13 Mit synchronized nachträglich synchronisieren *. 393
5.4.14 Monitore sind reentrant-gut für die Geschwindigkeit*. 394
5.4.15 Synchronisierte Methodenaufrufe zusammenfassen *. 395
5.5 Synchronisation über Warten und Benachrichtigen. 396
5.5.1 Die Schnittstelle Condition. 397
5.5.2 It's Disco-Time *. 400
5.5.3 Warten mit wait(.) und Aufwecken mit notify()/notifyAll() *. 405
5.5.4 Falls der Lock fehlt - UlegalMonitorStateException *. 406
408
408
412
413
414
414
416
418
418
420
421
424
425
427
428
430
430
431
431
434
437
438
440
440
442
442
447
449
450
451
452
452
453
455
455
456
457
5.6 Datensynchronisation durch besondere Concurrency-Klassen *.
5.6.1 Semaphor.
5.6.2 Barrier und Austausch.
5.6.3 Stop-and-go mit Exchanger.
5.7 Atomare Operationen und frische Werte mit volatile *.
5.7.1 Der Modifizierer volatile bei Objekt-/Klassenvariablen.
5.7.2 Das Paket java.util.concurrentatomic.
5.8 Teile und herrsche mit Fork und Join *.
5.8.1 Algorithmendesign per »teile und herrsche«.
5.8.2 Nebenläufiges Lösen von D C-Algorithmen.
5.8.3 Fork und Join.
5.9 Mit dem Thread verbundene Variablen *.
5.9.1 ThreadLocal.
5.9.2 InheritableThreadlocal.
5.9.3 ThreadLocalRandom als schneller nebenläufiger Zufallszahlengenerator
5.9.4 ThreadLocal bei der Performance-Optimierung.
5.10 Threads in einer Thread-Cruppe *.
5.10.1 Aktive Threads in der Umgebung.
5.10.2 Etwas über die aktuelle Thread-Gruppe herausfinden.
5.10.3 Threads in einer Thread-Gruppe anlegen.
5.10.4 Methoden von Thread und ThreadGroup im Vergleich.
5.11 Reaktive Programmierung und die Flow-API*.
5.12 Zeitgesteuerte Abläufe.
5.12.1 Die Typen Timer und TimerTask.
5.13 Ausfuhren externer Programme, Starten von Prozessen *.
5.13.1 ProcessBuilder und Prozesskontrolle mit Process.
5.13.2 ProcessHandle und Prozess-IDs.
5.13.3 Einen Browser, E-Mail-Client oder Editor aufrufen.
5.14 Den Stack-Trace erfragen *.
5.14.1 StackTraceElement.
5.14.2 printStackT race(.).
5.14.3 StackTraceElement vom Thread erfragen.
5.14.4 StackWalker und Stack-Walking API.
5.15 Einen Abbruch der virtuellen Maschine erkennen.
5.15.1 Shutdown-Hook.
5.15.2 Signale.
5.16 Zum Weiterlesen.
12
Inhalí
6 Raum und Zeit 459
6.1 Sprachen der Länder. 459
6.1.1 Sprachen in Regionen über Locaie-Objekte. 459
6.2 Internationalisierung und Lokalisierung. 463
6.2.1 ResourceBundle-Objekte und Ressource-Dateien. 463
6.2.2 Ressource-Dateien zur Lokalisierung. 464
6.2.3 Die Klasse ResourceBundle. 465
6.2.4 Ladestrategie für ResourceBundle-Objekte. 465
6.2.5 Ladeprozess und Format anpassen *. 467
6.3 Weltzeit *. 468
6.4 Wichtige Datum-Klassen im Überblick. 469
6.4.1 Der 1.1.1970 . 470
6.4.2 System.currentTimeMillis(). 470
6.4.3 Einfache Zeitumrechnungen durch TimeUnit. 471
6.5 Die Klasse Date. 472
6.5.1 Objekte erzeugen und Methoden nutzen. 472
6.5.2 Date-Objekte sind nicht immutable. 474
6.6 Date-Time-API. 474
6.6.1 Menschenzeit und Maschinenzeit. 476
6.6.2 Datumsklasse LocalDate. 479
6.6.3 Ostertage *. 480
6.6.4 Die Klasse YearMonth. 481
6.6.5 Die Klasse MonthDay. 482
6.6.6 Aufzählung DayOfWeek und Month. 482
6.6.7 Klasse LocalTime. 483
6.6.8 Klasse LocalDateTime. 483
6.6.9 Klasse Year. 484
6.6.10 Zeitzonen-Klassen Zoneld und ZoneOffset. 485
6.6.11 Temporale Klassen mit Zeitzoneninformationen. 486
6.6.12 Klassen Period und Duration. 489
6.6.13 Klasse Instant. 492
6.6.14 Parsen und Formatieren von temporalen Typen. 493
6.6.15 Das Paket java.time.temporal *. 496
6.6.16 Rock Aroundthe Clock. 502
6.6.17 Konvertierungen zwischen der klassischen API und der Date-Time-API. 503
6.7 Cafendar und GregorianCalendar. 504
6.7.1 Die abstrakte Klasse Calendar. 505
6.7.2 Calendar nach Date und Millisekunden fragen. 506
13
Inhalt
6.7.3 Abfragen und Setzen von Datumselementen über Feidbezeichner. 506
6.7.4 Kalender-Exemplare bauen über den Calendar.Bullder. 510
6.7.5 Wie viele Tage hat der Monat, oder wie viele Monate hat ein Jahr? *. 511
6.7.6 Wann beginnt die Woche und wann die erste Woche im Jahr? *. 512
6.7.7 Der gregorianische Kalender. 513
6.8 Zeitzonen in Java *. 517
6.8.1 Zeitzonen durch die Klasse TimeZone repräsentieren. 517
6.8.2 SimpleTimeZone. 518
6.8.3 Methoden von TimeZone. 519
6.9 Formatieren und Parsen von Date-Objekten. 520
6.9.1 Mit DateFormat und SimpleDateFormat formatieren. 521
6.9.2 Parsen von Datumswerten. 526
6.10 Die Default-Falle. 528
6.11 Zum Weiterlesen. 529
7 Dateien, Verzeichnisse und Dateizugriffe 531
7.1 Alte und neue Welt in java.lo und java.nio. 531
7.1.1 java.io-Paket mit File-Klasse. 531
7.1.2 N10.2 und java.nio-Paket. 532
7.1.3 java.io.File oder java.nio.*?. 532
7.2 Dateisysteme und Pfade. 533
7.2.1 FileSystem und Path. 533
7.2.2 Die Utility-Klasse Files. 539
7.2.3 Dateien kopieren und verschieben. 541
7.2.4 Dateiattribute *. 543
7.2.5 Neue Dateien, Verzeichnisse, symbolische Verknüpfungen
anlegen und löschen. 552
7.2.6 MIME-Typen herausfinden *. 554
7.2.7 Verzeichnislistings(DirectoryStream/Stream) und Filter*. 556
7.2.8 Rekursives Ablaufen des Verzeichnisbaums*. 558
7.2.9 Rekursiv nach Dateien/Ordnern suchen mit Files.find(.) *. 562
7.2.10 FileSystem: Abstraktion eines Dateisystems*. 563
7.2.11 Verzeichnisse im Dateisystem überwachen *. 566
7.3 Datei- und Verzeichnisoperationen mit der Klasse File. 569
7.3.1 Dateien und Verzeichnisse mit der Klasse File. 569
7.3.2 Existiert das Verzeichnis oder die Datei, und ist es.?. 573
14
Inhalt
7.3.3 Verzeichnis- und Dateieigenschaften/-attribute. 573
7.3.4 Umbenennen und Verzeichnisse anlegen. 576
7.3.5 Verzeichnisse auflisten und Dateien filtern. 576
7.3.6 Dateien berühren, neue Dateien anlegen, temporäre Dateien. 579
7.3.7 Dateien und Verzeichnisse löschen. 580
7.3.8 Wurzelverzeichnis, Laufwerksnamen, Plattenspeicher*. 581
7.3.9 URL-, URI- und Path-Objekte aus einem File-Objekt ableiten *. 583
7.3.10 Mit Locking Dateien sperren *. 584
7.3.11 Sicherheitsprüfung*. 585
7.4 Dateien mit wahlfreiem Zugriff. 585
7.4.1 Ein RandomAccessFlle zum Lesen und Schreiben öffnen. 586
7.4.2 Aus dem RandomAccessFlle lesen. 586
7.4.3 Schreiben mit RandomAccessFlle. 589
7.4.4 Die Länge des RandomAccessFlle. 590
7.4.5 Hin und her in der Datei. 590
7.5 Wahlfreier Zugriff mit SeekableByteChannel und ByteBuffer *. 591
7.5.1 SeekableByteChannel. 591
7.5.2 ByteBuffer. 592
7.5.3 Beispiel mit Path + SeekableByteChannel + ByteBuffer. 592
7.5.4 FileChannel. 593
7.6 Zum Weiterlesen. 595
8 Datenströme 597
8.1 Basisklassen für die Ein-/Ausgabe. 597
8.1.1 Die vier abstrakten Basisklassen. 598
8.1.2 Die abstrakte Basisklasse OutputStream. 598
8.1.3 Ein Datenschlucker*. 601
8.1.4 Die abstrakte Basisklasse InputStream. 601
8.1.5 Die abstrakte Basisklasse Wrlter. 603
8.1.6 Die Schnittstelle Appendable*. 605
8.1.7 Die abstrakte Basisklasse Reader. 605
8.1.8 Die Schnittstellen Closeable, AutoCloseable und Flushable. 608
8.2 Lesen aus Dateien und Schreiben in Dateien. 610
8.2.1 Byteorientierte Datenströme über Files beziehen. 610
8.2.2 Zeichenorientierte Datenströme über Files beziehen. 611
8.2.3 Funktion von OpenOption bei den Files.newXXX(.)֊Methoden. 613
8.2.4 Ressourcen aus dem Modulpfad und aus JAR-Dateien laden. 614
15
616
616
617
617
618
620
620
625
628
629
632
633
634
635
636
637
637
639
640
640
641
642
644
645
646
649
650
651
652
653
653
655
657
657
659
660
661
662
664
Übersicht über Ein-/Ausgabeklassen.
8.3.1 Eingaben lesen.
8.3.2 Ausgaben schreiben.
8.3.3 Klassen gruppiert nach Ressourcen.
8.3.4 Ströme mit SequencelnputStream zusammensetzen*.
Formatierte Textausgaben.
8.4.1 Die Klassen PrintWriter und PrintStream.
8.4.2 System.out, System.errund System.in.
Die FileXXX-Stromklassen.
8.5.1 FileOutputStream und FilelnputStream.
8.5.2 Das FileDescriptor-Objekt *.
8.5.3 Mit dem FileWriter Texte in Dateien schreiben.
8.5.4 Zeichen mit der Klasse FileReader lesen.
Schreiben und Lesen aus Strings und Byte-Feldern.
8.6.1 Mit dem StringWriter ein String-Objekt füllen.
8.6.2 CharArrayWriter.
8.6.3 StringReader und CharArrayReader.
8.6.4 Mit ByteArrayOutputStream in ein Byte-Feld schreiben.
8.6.5 Mit ByteArraylnputStream aus einem Byte-Feld lesen.
Datenströme filtern und verketten.
8.7.1 Streams als Filter verketten (verschachteln).
8.7.2 Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream
8.7.3 Gepufferte Eingaben mit BufferedReader/BufferedlnputStream.
8.7.4 UneNumberReader zählt automatisch Zeilen mit *.
8.7.5 Daten mit der Klasse PushbackReader zurücklegen *.
8.7.6 DataOutputStream/DatalnputStream *.
8.7.7 Basisklassen für Filter*.
8.7.8 Die Basisklasse FilterWriter *.
8.7.9 Eingaben mit der Klasse FilterReader filtern *.
Vermittler zwischen Byte-Streams und Unicode-Strömen.
8.8.1 Datenkonvertierung durch den OutputStreamWriter.
8.8.2 Automatische Konvertierungen mit dem InputStreamReader.
Kommunikation zwischen Threads mit Pipes *.
8.9.1 PipedOutputStream und PipedlnputStream.
8.9.2 PipedWriter und PipedReader.
Prüfsummen.
8.10.1 Die Schnittstelle Checksum.
8.10.2 Die Klasse CRC32.
8.10.3 Die Adler32-Klasse.
Inhalt
8.11 Persistente Objekte und Serialisierung. 664
8.11.1 Objekte mit der Standardserialisierung speichern und lesen. 665
8.11.2 Zwei einfache Anwendungen der Serialisierung *. 668
8.11.5 Die Schnittstelle Serializable. 669
8.11.4 Nicht serialisierbare Attribute aussparen. 671
8.11.5 Deserialisierung absichern mit einem ObjectlnputFilter*. 673
8.11.6 Das Abspeichern selbst in die Hand nehmen. 676
8.11.7 Tiefe Objektkopien *. 679
8.11.8 Versionenverwaltung und die SUID. 681
8.11.9 Wie die Arraylist seriaiisiert *. 683
8.11.10 Probleme mit der Serialisierung. 684
8.12 Alternative Datenaustauschformate. 685
8.12.1 Serialisieren in XMLDateien. 685
8.12.2 XML-Serialisierung von JavaBeans mit JavaBeans Persistence*. 685
8.12.3 DieOpen-Source-BibliothekXStream*. 687
8.12.4 Binäre Serialisierung mit Google Protocol Buffers *. 688
8.13 Zum Weiterlesen. 688
9 Dateiformate 689
9.1 Einfache Dateiformate für strukturierte Daten. 690
9.1.1 Property-Dateien mit java.util.Properties lesen und schreiben. 690
9.1.2 CSV-Dateien . 692
9.2 Dokumentenformate. 694
9.2.1 (X)HTML. 694
9.2.2 PDF-Dokumente. 695
9.2.3 Microsoft-Office-Dokumente. 696
9.2.4 OASIS Open Document Format. 697
9.3 Datenkompression *. 697
9.3.1 Java-Unterstützung beim Komprimieren. 698
9.3.2 Daten packen und entpacken. 699
9.3.3 Datenströme komprimieren. 701
9.3.4 ZIP-Archive. 704
9.3.5 JAR-Archive. 711
9.4 Bildformate. 711
9.5 Audiodateien. 711
9.5.1 Die Arbeit mit AudioSystem und Clip. 711
9.5.2 AudioClipvon JavaFX. 712
17
Inhalt
9.5.3 MIDI-Dateien abspielen. 712
9.5.4 ID-Tags aus MP3-Dateien. 714
9.6 Zum Weiterlesen. 715
10 Die eXtensible Markup Language (XML) und JSON m
10.1 Auszeichnungssprachen. 717
10.1.1 Die Standard Generalized Markup Language (SGML). 717
10.1.2 Extensible Markup Language (XML). 718
10.2 Eigenschaften von XML-Dokumenten. 718
10.2.1 Elemente und Attribute. 718
10.2.2 Beschreibungssprache für den Aufbau von XML-Dokumenten. 721
10.2.3 Schema - die moderne Alternative zu DTD. 725
10.2.4 Namensraum (Namespace). 727
10.2.5 XML-Applikationen *. 729
10.3 Die Java-APIs für XML. 729
10.3.1 Das Document Object Model (DOM). 730
10.3.2 Simple API for XML Parsing (SAX). 730
10.3.3 Pull-API StAX. 730
10.3.4 Java Document Object Model (JDOM). 731
10.3.5 JAXP als Java-Schnittstelle zu XML. 731
10.3.6 DOM-Bäume einiesen mit JAXP*. 732
10.4 Java Architecture for XML Binding (JAXB). 732
10.4.1 Bean für JAXB aufbauen. 733
10.4.2 Utility-Klasse JAXB. 734
10.4.3 Ganze Objektgraphen schreiben und lesen. 735
10.4.4 JAXBContext und Marshaller/Unmarshaller nutzen. 736
10.4.5 Validierung. 739
10.4.6 Weitere JAXB-Annotationen *. 742
10.4.7 JAXB-Beans aus XML-Schema-Datei generieren. 749
10.5 Serielle Verarbeitung mit StAX. 755
10.5.1 Unterschiede der Verarbeitungsmodelle. 756
10.5.2 XML-Dateien mit dem Cursor-Verfahren lesen. 757
10.5.3 XML-Dateien mit dem Iterator-Verfahren verarbeiten *. 761
10.5.4 Mit Filtern arbeiten*. 763
10.5.5 XML-Dokumente schreiben. 764
10.6 Serielle Verarbeitung von XML mit SAX *. 768
18
Inhalt
10.6.1 Schnittstellen von SAX. 768
10.6.2 SAX-Parser erzeugen. 769
10.6.3 Operationen der Schnittstelle ContentHandler. 769
10.6.4 ErrorHandler und EntityResolver. 772
10.7 XML-Dateien mit JDOM verarbeiten. 772
10.7.1 JDOM beziehen. 773
10.7.2 Paketübersicht*. 774
10.7.3 Die Document-Klasse. 775
10.7.4 Eingaben aus der Datei lesen. 776
10.7.5 Das Dokument im XML-Format ausgeben. 777
10.7.6 Der Dokumenttyp *. 778
10.7.7 Elemente. 779
10.7.8 Zugriff auf Elementinhalte. 781
10.7.9 Liste mit Unterelementen erfragen *. 784
10.7.10 Neue Elemente einfügen und ändern. 784
10.7.11 Attributinhalte lesen und ändern. 787
10.7.12 XPath. 790
10.8 Transformationen mit XSLT*. 794
10.8.1 Templates und XPath als Kernelemente von XSLT. 794
10.8.2 Umwandlung von XML-Dateien mit JDOM und JAXP. 797
10.9 XML-Schema-Validierung *. 797
10.9.1 SchemaFactory und Schema. 798
10.9.2 Validator. 798
10.9.3 Validierung unterschiedlicher Datenquellen durchführen. 799
10.10 JSON-Serialisierung mit Jackson-Datenformat. 799
10.10.1 JSON im Kontext von JavaScript. 799
10.10.2 JSON mit JavaScript-Engine von Java. 800
10.10.3 JSON-Verarbeitung mit der Java API for JSON Processing. 801
10.11 Zum Weiterlesen. 803
11 Netzwerkprogrammierung sos
11.1 Grundlegende Begriffe. 805
11.2 URI und URL. 807
11.2.1 Die Klasse URI . 807
11.2.2 Die Klasse URL. 807
11.2.3 Informationen übereine URL*. 809
11.2.4 Der Zugriff auf die Daten über die Klasse URL. 811
19
812
813
815
816
817
819
820
821
822
824
825
826
826
827
827
828
829
830
830
831
832
834
835
836
839
841
843
843
844
844
844
845
845
847
851
853
853
854
URL-Parameter kodieren.
Die Klassen URLConnection und HttpURLConnection.
11.4.1 Methoden und Anwendung von URLConnection .
11.4.2 HttpURLConnection .
11.4.3 Webseiten aufrufen, mit GET und POST Daten übergeben *
11.4.4 POST-Request absenden.
11.4.5 Der Protokoll-Händler für JAR-Dateien.
11.4.6 Basic Authentication und Proxy-Authentifizierung.
Host- und IP-Adressen.
11.5.1 Lebt der Rechner?.
11.5.2 IP-Adresse des lokalen Hosts.
11.5.3 Das Netz ist klasse *.
11.5.4 Networkinterface.
Socket-Verbindungen.
11.6.1 Das Netzwerk ist der Computer.
11.6.2 Sockets.
11.6.3 Eine Verbindung zum Server aufbauen.
11.6.4 Sockets unter Spannung - die Ströme.
11.6.5 Die Verbindung wieder abbauen.
11.6.6 Zeitserver ansprechen.
11.6.7 Informationen über den Socket *.
11.6.8 Reine Verbindungsdaten über SocketAddress *.
11.6.9 Die Serverseite mit ServerSocket vorbereiten.
11.6.10 Ein Multiplikationsserver.
11.6.11 Blockierendes Lesen .
HTTP Client API in Java 9.
Neue externe Netzwerkbibliotheken *.
11.8.1 HttpComponents.
11.8.2 Async Http Client.
11.8.3 Apache Commons Net.
Arbeitsweise eines Webservers *.
11.9.1 Das Hypertext Transfer Protocol (HTTP).
11.9.2 Anfragen an den Server.
11.9.3 Die Antworten vom Server.
11.9.4 Webserver mit com.sun.net.httpserver.HttpServer.
Verbindungen durch einen Proxy-Server *.
11.10.1 System-Properties.
11.10.2 Verbindungen durch die Proxy-API.
Inhalt
11.11 Bidirektionale binäre Webkommunikation über WebSockets*. 855
11.11.1 WebSocket-Standard. 855
11.11.2 WebSocket-lmplementierungen. 856
11.12 Datagram-Sockets *. 856
11.12.1 Die Klasse DatagramSocket. 858
11.12.2 Datagramme und die Klasse DatagramPacket. 859
11.12.3 Auf ein hereinkommendes Paket warten. 859
11.12.4 Ein Paket zum Senden vorbereiten. 860
11.12.5 Methoden der Klasse DatagramPacket. 861
11.12.6 Das Paket senden. 861
11.13 Tiefer liegende Netzwerkeigenschaften *. 862
11.13.1 MAC-Adressen auslesen. 863
11.13.2 Internet Control Message Protocol (ICMP). 863
11.14 Zum Weiterlesen. 863
12 RESTfuI und SOAP-Web-Services 865
12.1 Web-Services. 865
12.2 RESTfuI Web-Services. 866
12.2.1 Aus Prinzip REST. 867
12.2.2 Jersey. 868
12.3 Daily Soap und das SOAP-Protokoll. 868
12.3.1 Die technische Realisierung. 869
12.3.2 Web-Service-APIs und Implementierungen. 869
12.3.3 @WebService. 870
12.3.4 Web-Service-Modul angeben. 870
12.3.5 Einen Web-Service definieren . 870
12.3.6 Web-Services veröffentlichen . 872
12.3.7 Einen JAX-WS-Client implementieren. 872
12.4 Zum Weiterlesen. 874
13 Verteilte Programmierung mit RMI 875
13.1 Entfernte Objekte und Methoden. 875
13.1.1 Stellvertreter helfen bei entfernten Methodenaufrufen. 875
13.1.2 Standards für entfernte Objekte. 877
21
Inhalt
13.2 Java Remote Method Invocation. 877
13.2.1 Zusammenspiel von Server, Registry und Client. 877
13.2.2 Wie die Stellvertreter die Daten übertragen. 878
13.2.3 Probleme mit entfernten Methoden. 878
13.2.4 Nutzen von RMI bei Middleware-Lösungen. 880
13.2.5 Zentrale Klassen und Schnittstellen. 880
13.2.6 Entfernte und lokale Objekte im Vergleich. 881
13.3 Auf der Serverseite. 881
13.3.1 Entfernte Schnittstelle deklarieren. 882
13.3.2 Remote-Objekt-Implementierung. 882
13.3.3 Stellvertreterobjekte. 883
13.3.4 Der Namensdienst (Registry). 883
13.3.5 Remote-Objekt-Implementierung exportieren und beim
Namensdienst anmelden. 885
13.3.6 Einfaches Logging. 888
13.3.7 Aufräumen mit dem DGC*. 889
13.4 Auf der Client-Seite. 889
13.5 Entfernte Objekte übergeben und laden. 890
13.5.1 Klassen vom RMI-Klassenlader nachladen. 891
13.6 Automatische Remote-Objekt-Aktivlerung. 891
13.7 Java Message Service (JMS). 892
13.8 Zum Weiterlesen. 892
14 Typen, Reflection und Annotationen 895
14.1 Metadaten. 895
14.1.1 Metadaten durch Javadoc-Tags. 895
14.2 Die Klasse dass. 896
14.2.1 An ein Class-Objekt kommen. 896
14.2.2 Eine dass ist ein Type. 899
14.3 Klassenlader. 899
14.3.1 Die Klasse java.lang.ClassLoader. 900
14.3.2 HotDeploymentmitdem URL-Classloader*. 901
14.4 Metadaten der Typen mit dem Class-Objekt. 905
14.4.1 Der Name des Typs. 905
14.4.2 Was das Class-Objekt beschreibt*. 908
14.4.3 instanceof mit Class-Objekten *. 910
22
Inhalt
14.4.4 Oberklassen finden *. 911
14.4.5 implementierte Interfaces einer Klasse oder eines Interfaces*. 912
14.4.6 Modifizierer und die Klasse Modifier *. 912
14.4.7 Die Arbeit auf dem Feld*. 914
14.5 Attribute, Methoden und Konstruktoren. 915
14.5.1 Reflections-Gespür für die Attribute einer Klasse. 917
14.5.2 Schnittstelle Member für Eigenschaften. 918
14.5.3 Field-Klasse. 919
14.5.4 Methoden einer Klasse erfragen. 920
14.5.5 Properties einer Bean erfragen. 923
14.5.6 Konstruktoren einer Klasse. 924
14.5.7 Annotationen. 925
14.5.8 Reflexionen über Module. 925
14.6 Objekte erzeugen und manipulieren. 927
14.6.1 Objekte erzeugen. 927
14.6.2 Die Belegung der Variablen erfragen. 928
14.6.3 Eine generische eigene toString()-Methode*. 930
14.6.4 Variablen setzen. 932
14.6.5 Bean-Zustände kopieren *. 934
14.6.6 Private Attribute auslesen/ändern und der Typ AccessibleObject. 934
14.6.7 Methoden aufrufen. 936
14.6.8 Statische Methoden aufrufen. 937
14.6.9 Dynamische Methodenaufrufe bei festen Methoden beschleunigen *. 938
14.6.10 java.lang.reflect.Parameter. 940
14.7 Schneller aufrufen mit MethodType und MethodHandle. 941
14.8 Eigene Annotationstypen *. 942
14.8.1 Annotationen zum Laden von Ressourcen. 943
14.8.2 Neue Annotationen deklarieren. 943
14.8.3 Annotationen mit genau einem Attribut. 944
14.8.4 Element-Wert-Paare (Attribute) hinzufügen. 945
14.8.5 Annotationsattribute vom Typ einer Aufzählung. 946
14.8.6 Felder von Annotationsattributen. 946
14.8.7 Vorbelegte Attribute . 948
14.8.8 Annotieren von Annotationstypen. 949
14.8.9 Deklarationen für unsere Ressourcen-Annotationen. 954
14.8.10 Annotierte Elemente auslesen. 956
14.8.11 Auf die Annotationsattribute zugreifen. 958
14.8.12 Komplettbeispiel zum Initialisieren von Ressourcen. 959
14.8.13 Mögliche Nachteile von Annotationen. 961
14.9 Zum Weiterlesen. 962
23
Inhalt
15 Logging und Monitoring 963
15.1 Logging mit Java. 963
15.1.1 Logging-APIs. 963
15.1.2 Logging mit java.util.logging. 964
15.1.3 Die Simple Logging Façade (SLF4J). 970
15.1.4 Logging mit log4j 2 *. 972
15.1.5 Aktuelle Entwicklungen der Java-Logging-APIs. 975
15.1.6 System-Logging*. 975
15.2 Systemzustände überwachen. 976
15.3 MBean-Typen, MBean-Server und weitere Begriffe. 976
15.3.1 MXBeans des Systems. 977
15.4 Geschwätzige Programme und JConsole. 979
15.4.1 JConsole. 979
15.5 Der MBeanServer. 981
15.6 Eine eigene Standard-MBean. 982
15.6.1 Management-Schnittstelle. 982
15.6.2 Implementierung der Managed Ressource. 982
15.6.3 Anmeldung beim Server. 983
15.6.4 Eine eigene Bean in JConsole einbringen. 983
15.7 Zum Weiterlesen. 986
16 Datenbankmanagement mit JDBC 987
16.1 Relationale Datenbanken und Datenbankmanagementsysteme. 987
16.1.1 Das relationale Modell. 987
16.1.2 Datenbanken und Tools. 988
16.1.3 HSQLDB. 988
16.1.4 Weitere Datenbanken *. 990
16.1.5 Eclipse Data Tools Platform (DTP) zum Durchschauen von Datenbanken . 991
16.2 JDBC und Datenbanktreiber. 993
16.2.1 JDBC-Versionen *. 994
16.3 Eine Beispielabfrage. 995
16.3.1 Schritte zur Datenbankabfrage. 995
16.3.2 Ein Client für die HSQLDB-Datenbank. 995
24
996
997
997
999
999
1000
1003
1003
1005
1007
1009
1011
1012
1012
1013
1013
1014
1015
1016
1016
1017
1019
1019
1019
1020
1021
1023
1024
1025
1026
1027
1027
1030
1031
25
Mit Java an eine Datenbank andocken.
16.4.1 Der Treiber-Manager*.
16.4.2 Den Treiber laden .
16.4.3 Eine Aufzählung aller Treiber*.
16.4.4 Log-Informationen *.
16.4.5 Verbindung zur Datenbank auf-und abbauen.
Datenbankabfragen.
16.5.1 Abfragen über das Statement-Objekt.
16.5.2 Ergebnisse einer Abfrage in ResultSet.
16.5.3 Java und SQL-Datentypen.
16.5.4 Date, Time und Timestamp.
16.5.5 Unicode in der Spalte korrekt auslesen.
16.5.6 Eine SQL-NULL und wasNullf) bei ResultSet.
16.5.7 Wie viele Zeilen hat ein ResultSet? *.
Elemente einer Datenbank ändern.
16.6.1 Einzelne INSERT-, UPDATE- oder DELETE-Anweisungen senden
16.6.2 Aktualisierbares ResultSet.
16.6.3 Batch-Updates.
Die Ausnahmen bei JDBC, SQLException und Unterklassen.
16.7.1 JDBC-Fehlerbasisklasse SQLException.
16.7.2 SQLWarning.
ResultSet und RowSet *.
16.8.1 Die Schnittstelle RowSet.
16.8.2 Implementierungen von RowSet.
16.8.3 Der Typ CachedRowSet.
16.8.4 Der Typ WebRowSet.
Vorbereitete Anweisungen (Prepared Statements).
16.9.1 PreparedStatement-Objekte vorbereiten.
16.9.2 Werte für die PreparedStatement-Platzhalter.
Transaktionen.
Vorbereitete Datenbankverbindungen.
16.11.1 DataSource.
16.11.2 Gepoolte Datenbankverbindungen.
Zum Weiterlesen.
Inhalt
17 Grafische Oberflächen mit Swing мзз
17.1 AWT, JavaFoundation Classes und Swing. 1033
17.1.1 Das Abstract Window Toolkit (AWT). 1033
17.1.2 Java Foundation Classes (JFC). 1034
17.1.3 Was Swing von AWT-Komponenten unterscheidet. 1037
17.2 Mit NetBeans zur ersten Swing-Oberfläche. 1038
17.2.1 Projekt anlegen. 1038
17.2.2 Eine GUI-Klasse hinzufügen. 1039
17.2.3 Programm starten. 1041
17.2.4 Grafische Oberfläche aufbauen. 1042
17.2.5 Swing-Komponenten-Klassen. 1044
17.2.6 Funktionalität geben. 1046
17.3 Aller Swing-Anfang - Fenster zur Welt. 1049
17.3.1 Eine Uhr, bei der die Zeit nie vergeht. 1050
17.3.2 Swing-Fenster mit javax.swingJFrame darstellen. 1051
17.3.3 Mit add(.) auf den Container. 1051
17.3.4 Fenster schließbar machen -setDefaultCloseOperation(int). 1051
17.3.5 Sichtbarkeit des Fensters. 1052
17.3.6 Größe und Position des Fensters verändern. 1053
17.3.7 Fenster-und Dialogdekoration,Transparenz*. 1054
17.3.8 Die Klasse Toolkit*. 1055
17.3.9 Zum Vergleich: AWT-Fenster darstellen*. 1055
17.4 Beschriftungen (JLabel). 1057
17.4.1 Mehrzelliger Text, HTML in der Darstellung. 1059
17.5 Icon und Imageicon für Bilder auf Swing-Komponenten. 1060
17.5.1 Die Klasse irmagelcon. 1060
17.6 Es tut sich was - Ereignisse beim AWT. 1062
17.6.1 Die Ereignisquellen und Horcher (Listener) von Swing. 1063
17.6.2 Listener implementieren. 1064
17.6.3 Listener bei dem Ereignisauslöser anmelden/abmelden. 1066
17.6.4 Adapterklassen nutzen. 1068
17.6.5 Listener-Code in inneren Klassen und Lambda-Ausdrücken. 1070
17.6.6 Aufrufen der Listener im AWT-Event-Thread. 1072
17.6.7 Ereignisse, etwas genauer betrachtet *. 1072
17.7 Schaltflächen. 1076
17.7.1 Normale Schaltflächen (JButton). 1076
17.7.2 Der aufmerksame Actionüstener. 1078
26
1079
1079
1081
1081
1082
1083
1085
1086
1087
1090
1093
1095
1095
1096
1096
1099
1100
1103
1104
1105
1108
1108
1108
1109
1109
1110
1111
1112
1112
1113
1114
1116
1116
1119
1121
1126
1126
1126
1128
27
17.7.3 Schaltflächen-Ereignisse vom Typ ActionEvent.
17.7.4 Basisklasse AbstractButton.
17.7.5 Wechselknopf (JToggleButton).
Textkomponenten.
17.8.1 Text in einer Eingabezeile.
17.8.2 Die Oberklasse der Textkomponenten (JTextComponent)
17.8.3 Geschützte Eingaben (JPasswordField).
17.8.4 Validierende Eingabefelder (JFormattedTextField).
17.8.5 Einfache mehrzeilige Textfelder (JTextArea).
17.8.6 Editor-Klasse (JEditorPane) *.
Swing Action *.
JComponent und Component als Basis aller Komponenten.
17.10.1 Hinzufügen von Komponenten.
17.10.2 Tooltips (Kurzhinweise).
17.10.3 Rahmen (Border) *.
17.10.4 Fokus und Navigation *.
17.10.5 Ereignisse jeder Komponente *.
17.10.6 Die Größe und Position einer Komponente*.
17.10.7 Komponenten-Ereignisse *.
17.10.8 Ul-Delegate-der wahre Zeichner*.
17.10.9 Undurchsichtige (opake) Komponente *.
17.10.10Properties und Listener für Änderungen *.
Container.
17.11.1 Standard-Container (JPanel).
17.11.2 Bereich mit automatischen Rollbalken (JScrollPane).
17.11.3 Reiter (JTabbedPane).
17.11.4 Teilungskomponente (JSplitPane) .
Alles Auslegungssache - die Layoutmanager.
17.12.1 Übersicht über Layoutmanager.
17.12.2 Zuweisen eines Layoutmanagers.
17.12.3 Im Fluss mit FlowLayout.
17.12.4 BoxLayout.
17.12.5 Mit BorderLayout in alle Himmelsrichtungen.
17.12.6 Rasteranordnung mit GridLayout.
17.12.7 Der GridBagLayoutmanager *.
17.12.8 Null-Layout*.
Rollbalken und Schieberegler.
17.13.1 Schieberegler (JSIider).
17.13.2 Rollbalken (JScrollBar) *.
1131
1132
1134
1136
1137
1137
1139
1139
1139
1141
1142
1143
1144
1146
1146
1150
1154
1155
1157
1157
1164
1170
1171
1172
1173
1174
1178
1179
1182
1183
1187
1187
1189
1189
1192
1192
1193
1193
1196
Kontrollfelder, Optionsfelder, Kontrollfeldgruppen.
17.14.1 Kontrollfelder (JCheckBox).
17.14.2 ItemSelectable, Itemüstener und das ItemEvent.
17.14.3 Sich gegenseitig ausschließende Optionen (JRadioButton)
Fortschritte bei Operationen überwachen *.
17.15.1 Fortschrittsbalken (JProgressBar).
17.15.2 Dialog mit Fortschrittsanzeige (ProgressMonitor).
Menüs und Symbolleisten.
17.16.1 Die Menüleisten und die Einträge.
17.16.2 Menüeinträge definieren.
17.16.3 Einträge durch Action-Objekte beschreiben.
17.16.4 Mit der Tastatur - Mnemonics und Shortcut.
17.16.5 Der Tastatur-Shortcut (Accelerator).
17.16.6 Tastenkürzel (Mnemonics).
17.16.7 Symbolleisten alias Toolbars.
17.16.8 Popup-Menüs.
17.16.9 System-Tray nutzen *.
Das Model-View-Controller-Konzept.
Auswahlmenüs, Listen und Spinner.
17.18.1 Listen (JList).
17.18.2 Auswahlmenü (JComboBox).
17.18.3 Drehfeld (JSpinner) * .
17.18.4 Datumsauswahl.
Tabellen (JTable).
17.19.1 Ein eigenes Tabellen-Model.
17.19.2 Basisklasse für eigene Modelle (AbstractTableModel).
17.19.3 Ein vorgefertigtes Standardmodell (DefaultTableModel).
17.19.4 Ein eigener Renderer für Tabellen.
17.19.5 Zell-Editoren.
17.19.6 Automatisches Sortieren und Filtern mit RowSorter *.
Bäume (JTree).
17.20.1 JTree und sein TreeModel und TreeNode.
17.20.2 Selektionen bemerken.
17.20.3 Das TreeModel von JTree*.
Dialoge und Window-Objekte.
17.21.1 JWindow und JDialog.
17.21.2 Modal oder nichtmodal?.
17.21.3 Standarddialoge mit JOptionPane.
17.21.4 Der Dateiauswahldialog.
Inhalt
17.22 Flexibles Java-Look-and-Feel. 1201
17.22.1 UlManager. 1201
17.23 Swing-Komponenten neu erstellen oder verändern *. 1203
17.23.1 Überlagerungen mit dem Swing-Komponenten-Dekorator JLayer. 1204
17.24 Die Zwischenablage (Clipboard). 1206
17.24.1 Cllpboard-Objekte. 1206
17.24.2 Mit Transferable auf den Inhaltzugreifen. 1206
17.24.3 DataFlavor ist das Format der Daten in der Zwischenablage. 1207
17.24.4 Einfügungen In der Zwischenablage erkennen. 1209
17.24.5 Drag Drop. 1210
17.25 AWT, Swing und die Threads. 1211
17.25.1 Ereignisschlange (EventQueue) und AWT-Event-Thread. 1211
17.25.2 Swing Ist nicht threadsicher. 1212
17.25.3 invokeLater(„.) und lnvokeAndWalt(.). 1214
17.25.4 SwingWorker. 1216
17.25.5 Eigene Ereignisse in die Queue setzen *. 1218
17.25.6 Auf alle Ereignisse hören *. 1219
17.26 Barrierefreiheit mit der Java Accessibility API. 1219
17.27 Zeitliches Ausfuhren mit dem javax.swing.Timer. 1220
17.28 Zum Weiterlesen. 1221 18
18 Grafikprogrammierung 1223
18.1 Grundlegendes zum Zeichnen. 1223
18.1.1 Die paint(Graphlcs)-Methodefürdas AWT-Frame. 1223
18.1.2 Die ereignisorientierte Programmierung ändert Fensterinhalte. 1225
18.1.3 Zeichnen von Inhalten auf ein JFrame. 1220
18.1.4 Auffordern zum Neuzeichnen mit repaint(.). 1228
18.1.5 Java 2D-API. 1228
18.2 Einfache Zeichenmethoden. 1229
18.2.1 Linien. 1229
18.2.2 Rechtecke. 1230
18.2.3 Ovale und Kreisbögen. 1231
18.2.4 Polygone und Polylines. 1232
18.3 Zeichenketten schreiben und Fonts. 1233
18.3.1 Zeichenfolgen schreiben. 1233
29
1234
1235
1239
1240
1242
1242
1243
1243
1244
1244
1249
1249
1250
1251
1254
1255
1257
1261
1263
1263
1264
1264
1268
1269
1271
1271
1273
1274
1274
1275
1275
1276
1276
1278
1278
1280
18.3.2 Die Font-Klasse.
18.3.3 Font-Metadaten durch FontMetrics *.
Geometrische Objekte.
18.4.1 Die Schnittstelle Shape.
18.4.2 Pfade *.
Das Innere und Äußere einer Form.
18.5.1 Farben und die Paint-Schnittstelle.
18.5.2 Farben mit der Klasse Color.
18.5.3 Composite und XOR *.
18.5.4 Dicke und Art der Linien von Formen bestimmen über Stroke *
Bilder.
18.6.1 Eine Übersicht über die Bilder-Bibliotheken.
18.6.2 Bilder mit ImagelO lesen.
18.6.3 Ein Bild zeichnen.
18.6.4 Splash-Screen”.
18.6.5 Bilder skalieren *.
18.6.6 Schreiben mit ImagelO.
18.6.7 Asynchrones Laden mit getlmage(„.) und dem MediaTracker *
Weitere Eigenschaften von Graphics *.
18.7.1 Eine Kopie von Graphics erstellen.
18.7.2 Koordinatensystem verschieben.
18.7.3 Beschnitt (Clipping).
18.7.4 Zeichenhinweise durch RenderingHints.
18.7.5 Transformationen mit einem AffineTransform-Objekt.
Drucken *.
18.8.1 Drucken der Inhalte.
18.8.2 Bekannte Drucker.
Benutzerinteraktionen automatisieren, Robot und Screenshots * .
18.9.1 Der Roboter.
18.9.2 Automatisch in die Tasten hauen.
18.9.3 Automatisierte Mausoperationen.
18.9.4 Methoden zur Zeitsteuerung.
18.9.5 Bildschirmabzüge (Screenshots).
18.9.6 Funktionsweise und Beschränkungen.
18.9.7 Mouselnfo und Pointerinfo.
Zum Weiterlesen.
Inhalt
19 JavaFX 1281
19.1 Das erste Programm mit JavaFX. 1281
19.2 Zentrale Typen in JavaFX. 1284
19.2.1 Szenegraph-Knoten und Container-Typen. 1284
19.2.2 Datenstrukturen. 1285
19.B JavaFX-Komponenten und Layout-Container-Klassen. 1286
19.3.1 Überblick über die Komponenten. 1286
19.3.2 Listener/Handler zur Ereignisbeobachtung. 1287
19.3.3 Panels mit speziellen Layouts. 1288
19.4 Webbrowser. 1290
19.5 Geometrische Objekte. 1291
19.5.1 Linien und Rechtecke. 1292
19.5.2 Kreise, Ellipsen, Kreisförmiges. 1294
19.5.3 Es werde kurvig-quadratische und kubische Splines. 1295
19.5.4 Pfade*. 1297
19.5.5 Polygone und Polylines. 1300
19.5.6 Beschriftungen, Texte, Fonts. 1300
19.5.7 Die Oberklasse Shape. 1302
19.6 Füllart von Formen. 1304
19.6.1 Farben mit der Klasse Color. 1304
19.7 Grafiken. 1308
19.7.1 Klasse Image. 1308
19.7.2 ImageView. 1309
19.7.3 Programm-Icon/Fenster-Icon setzen. 1310
19.7.4 Zugriff auf die Pixel und neue Pixel-Bilder*. 1310
19.8 Deklarative Oberflächen mit FXML. 1313
19.9 Diagramme (Charts). 1315
19.9.1 Kuchendiagramm. 1315
19.9.2 Balkendiagramm. 1317
19.10 Animationen. 1319
19.10.1 FadeTransition. 1320
19.10.2 ScaleTransition. 1320
19.10.3 Transitionen parallel oder sequenziell durchführen. 1321
19.11 Medien abspielen . 1322
19.12 Java 3D. 1323
19.13 Das Geometry-Paket *. 1323
31
Inhalt
19.14 JavaFX-Scene in Swing-Applikationen einbetten. 1324
19.15 Zum Weiterlesen. 1326
20 Sicherheitskonzepte 1327
20.1 Zentrale Elemente der Java-Sicherheit. 1327
20.1.1 Sichere Java Virtual Machine. 1327
20.1.2 Der Sandkasten (Sandbox). 1327
20.1.3 Security-API der Java SE. 1328
20.1.4 Cryptographic Service Providers. 1329
20.2 Sicherheitsmanager (Security-Manager). 1330
20.2.1 Der Sicherheitsmanager bei Applets. 1330
20.2.2 Sicherheitsmanager aktivieren. 1331
20.2.3 Rechte durch Policy-Dateien vergeben. 1334
20.2.4 Erstellen von Rechtedateien mit dem grafischen Policy-Tool. 1336
20.2.5 Kritik an den Policies. 1337
20.3 Signierung. 1338
20.3.1 Warum signieren?. 1339
20.3.2 Digitale Ausweise und die Zertifizierungsstelle. 1339
20.3.3 Mit keytool Schlüssel erzeugen. 1339
20.3.4 Signieren mit jarsigner. 1340
20.4 Kryptografische Hashfunktion. 1341
20.4.1 Die MDx-Reihe. 1342
20.4.2 Secure Hash Algorithm (SHA). 1342
20.4.3 Mit der Security-API einen Fingerabdruck berechnen. 1343
20.4.4 Die Klasse MessageDigest. 1343
20.5 Verschlüsseln von Daten(-strömen) *. 1346
20.5.1 Den Schlüssel, bitte. 1346
20.5.2 Verschlüsseln mit Cipher. 1347
20.5.3 Verschlüsseln von Datenströmen. 1348
20.6 Zum Weiterlesen. 1349
21 Dynamische Übersetzung, Skriptsprachen, JShell 1351
21.1 Codegenerierung. 1352
21.1.1 Generierung von Java-Quellcode. 1353
32
Inhalt
21.1.2 Codetransformationen. 1355
21.1.3 Erstellen von Java-Bytecode. 1355
21.2 Programme mit der Java Compiler API übersetzen. 1356
21.2.1 Java Compiler API. 1356
21.2.2 Fehlerdiagnose. 1359
21.2.3 Eine im String angegebene Kompilationseinheit übersetzen. 1361
21.2.4 Wenn Quelle und Ziel der Speicher sind. 1362
21.3 Ausfuhren von Skripten. 1366
21.3.1 Java-Programme mit JavaScript schreiben. 1366
21.3.2 Kommandozeilenprogramme jrunscript und jjs. 1367
21.3.3 javax.script-API. 1367
21.3.4 JavaScript-Programme ausführen. 1368
21.3.5 Alternative Sprachen für die JVM. 1369
21.3.6 Von den Schwierigkeiten, dynamische Programmiersprachen
auf die JVM zu bringen *. 1371
21.4 JShell, die interaktive REPL-Shell. 1375
21.4.1 JShell API. 1380
21.5 Zum Weiterlesen. 1381
22 Java Native interface (JNI) ізгз
22.1 Java Native Interface und Invocation-API. 1383
22.2 Eine C-Funktion in ein Java-Programm einbinden. 1384
22.2.1 Den Java-Code schreiben. 1384
22.3 Dynamische Bibliotheken erzeugen. 1386
22.3.1 Die Header-Datei erzeugen. 1386
22.3.2 Implementierung der Funktion in C. 1388
22.3.3 Die C-Programme übersetzen und die dynamische Bibliothek erzeugen. 1389
22.3.4 Abhängige Bibliotheken entdecken. 1390
22.3.5 Nativ die String-Länge ermitteln. 1390
22.4 Erweiterte JNI-Eigenschaften. 1392
22.4.1 Klassendefinitionen. 1392
22.4.2 Zugriff auf Attribute. 1392
22.4.3 Methoden aufrufen. 1395
22.4.4 Threads und Synchronisation. 1396
22.4.5 @Native Markierungen *. 1397
33
Inhalt
22.5 Einfache Anbindung von existierenden Bibliotheken. 1397
22.5.1 JNA (Java Native Access). 1397
22.5.2 BridJ . 1398
22.5.3 Generieren von JNI-Wrappern aus C++-Klassen und C-Headern . 1399
22.5.4 COM-Schnittstellen anzapfen . 1399
22.6 invocation-API. 1399
22.7 Zum Weiterlesen. 1400
23 Dienstprogramme für die Java-Umgebung moi
23.1 Programme des JDK. 1401
23.2 Monitoringprogramme vom JDK. 1401
23.2.1 jps. 1401
23.2.2 jstat. 1402
23.2.3 jmap. 1402
23.2.4 jstack. 1403
23.2.5 jcmd. 1405
23.2.6 jhsdb. 1407
23.2.7 VisualVM. 1407
23.3 Ant. 1411
23.3.1 Bezug und Installation von Ant. 1412
23.3.2 Das Build-Skript build.xml . 1412
23.3.3 Build den Build. 1413
23.3.4 Properties. 1413
23.3.5 Externe und vordefinierte Properties. 1415
23.3.6 Weitere Ant-Tasks. 1416
23.4 Disassembler, Decompiler und Obfuscator. 1417
23.4.1 Der Disassembler javap *. 1417
23.4.2 Decompiler. 1422
23.4.3 Obfuscatoren. 1424
23.5 Weitere Dienstprogramme. 1426
23.5.1 Java-Programme als Systemdienst ausführen. 1426
23.6 Zum Weiterlesen. 1426
Index. 1427
34 |
any_adam_object | 1 |
author | Ullenboom, Christian |
author_GND | (DE-588)123404738 |
author_facet | Ullenboom, Christian |
author_role | aut |
author_sort | Ullenboom, Christian |
author_variant | c u cu |
building | Verbundindex |
bvnumber | BV044414038 |
classification_rvk | ST 250 |
classification_tum | DAT 362f |
collection | ebook |
ctrlnum | (OCoLC)1013885992 (DE-599)DNB1130667928 |
dewey-full | 005.133 004 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security 004 - Computer science |
dewey-raw | 005.133 004 |
dewey-search | 005.133 004 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 3., aktualisierte und überarbeitete Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV044414038</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20190320</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">170718s2018 gw a||| |||| 00||| ger d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1130667928</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783836258746</subfield><subfield code="c">hbk.</subfield><subfield code="9">978-3-8362-5874-6</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3836258749</subfield><subfield code="9">3-8362-5874-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1013885992</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1130667928</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-NW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1102</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-29T</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">004</subfield><subfield code="2">23</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 362f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Ullenboom, Christian</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)123404738</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Java SE 9-Standard-Bibliothek</subfield><subfield code="b">das Handbuch für Entwickler</subfield><subfield code="c">Christian Ullenboom</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">Java SE neun Standard-Bibliothek</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">Java SE 9 Standard-Bibliothek</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3., aktualisierte und überarbeitete Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Bonn</subfield><subfield code="b">Rheinwerk Computing</subfield><subfield code="c">2018</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1447 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">"Zweite Insel ; Datenstrukturen und Algorithmen, Stream-API, Nebenläufigkeit, XML, JDBC, Swing und JavaFX, Netzwerkprogrammierung, Datum und Zeit, JNI, Sicherheit, String-Verarbeitung" - Umschlag</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 9</subfield><subfield code="0">(DE-588)113696553X</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">JavaFX</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Swing</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">RMI</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">JNI</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Threads</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Netzwerkprogrammierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">SE 9</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Java programmieren</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Java Standard Edition</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Java entwickeln</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Java Entwickler</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Java Standard Edition 9</subfield><subfield code="0">(DE-588)113696553X</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Rheinwerk Verlag</subfield><subfield code="0">(DE-588)1081738405</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe (PDF, ePub, Mobi, Online)</subfield><subfield code="z">978-3-8362-5875-3</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, Bundle Buch + E-Book; E-Book Formate (PDF, ePub, Mobi, Online)</subfield><subfield code="z">978-3-8362-5877-7</subfield></datafield><datafield tag="780" ind1="0" ind2="0"><subfield code="i">Fortsetzung von</subfield><subfield code="a">Ullenboom, Christian</subfield><subfield code="t">SE 8 Standard-Bibliothek</subfield><subfield code="b">2. Auflage</subfield><subfield code="d">2014</subfield><subfield code="w">(DE-604)BV041974891</subfield></datafield><datafield tag="856" ind1="4" ind2="1"><subfield code="u">http://openbook.rheinwerk-verlag.de/java8/</subfield><subfield code="x">Verlag</subfield><subfield code="z">kostenfrei</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=f596de1fc66241a891d0e84771c79c97&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029815776&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ebook</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-029815776</subfield></datafield></record></collection> |
id | DE-604.BV044414038 |
illustrated | Illustrated |
indexdate | 2024-08-04T00:14:24Z |
institution | BVB |
institution_GND | (DE-588)1081738405 |
isbn | 9783836258746 3836258749 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-029815776 |
oclc_num | 1013885992 |
open_access_boolean | 1 |
owner | DE-1102 DE-M347 DE-91G DE-BY-TUM DE-739 DE-19 DE-BY-UBM DE-11 DE-859 DE-20 DE-860 DE-Aug4 DE-634 DE-1050 DE-83 DE-573 DE-29T |
owner_facet | DE-1102 DE-M347 DE-91G DE-BY-TUM DE-739 DE-19 DE-BY-UBM DE-11 DE-859 DE-20 DE-860 DE-Aug4 DE-634 DE-1050 DE-83 DE-573 DE-29T |
physical | 1447 Seiten Illustrationen, Diagramme |
psigel | ebook |
publishDate | 2018 |
publishDateSearch | 2018 |
publishDateSort | 2018 |
publisher | Rheinwerk Computing |
record_format | marc |
spelling | Ullenboom, Christian Verfasser (DE-588)123404738 aut Java SE 9-Standard-Bibliothek das Handbuch für Entwickler Christian Ullenboom Java SE neun Standard-Bibliothek Java SE 9 Standard-Bibliothek 3., aktualisierte und überarbeitete Auflage Bonn Rheinwerk Computing 2018 1447 Seiten Illustrationen, Diagramme txt rdacontent n rdamedia nc rdacarrier "Zweite Insel ; Datenstrukturen und Algorithmen, Stream-API, Nebenläufigkeit, XML, JDBC, Swing und JavaFX, Netzwerkprogrammierung, Datum und Zeit, JNI, Sicherheit, String-Verarbeitung" - Umschlag Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Java Standard Edition 9 (DE-588)113696553X gnd rswk-swf JavaFX Swing RMI JNI Threads Netzwerkprogrammierung SE 9 Java programmieren Java Standard Edition Java entwickeln Java Entwickler Java Standard Edition 9 (DE-588)113696553X s Java Programmiersprache (DE-588)4401313-9 s DE-604 Rheinwerk Verlag (DE-588)1081738405 pbl Erscheint auch als Online-Ausgabe (PDF, ePub, Mobi, Online) 978-3-8362-5875-3 Erscheint auch als Online-Ausgabe, Bundle Buch + E-Book; E-Book Formate (PDF, ePub, Mobi, Online) 978-3-8362-5877-7 Fortsetzung von Ullenboom, Christian SE 8 Standard-Bibliothek 2. Auflage 2014 (DE-604)BV041974891 http://openbook.rheinwerk-verlag.de/java8/ Verlag kostenfrei Volltext X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=f596de1fc66241a891d0e84771c79c97&prov=M&dok_var=1&dok_ext=htm Inhaltstext Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029815776&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Ullenboom, Christian Java SE 9-Standard-Bibliothek das Handbuch für Entwickler Java Programmiersprache (DE-588)4401313-9 gnd Java Standard Edition 9 (DE-588)113696553X gnd |
subject_GND | (DE-588)4401313-9 (DE-588)113696553X |
title | Java SE 9-Standard-Bibliothek das Handbuch für Entwickler |
title_alt | Java SE neun Standard-Bibliothek Java SE 9 Standard-Bibliothek |
title_auth | Java SE 9-Standard-Bibliothek das Handbuch für Entwickler |
title_exact_search | Java SE 9-Standard-Bibliothek das Handbuch für Entwickler |
title_full | Java SE 9-Standard-Bibliothek das Handbuch für Entwickler Christian Ullenboom |
title_fullStr | Java SE 9-Standard-Bibliothek das Handbuch für Entwickler Christian Ullenboom |
title_full_unstemmed | Java SE 9-Standard-Bibliothek das Handbuch für Entwickler Christian Ullenboom |
title_old | Ullenboom, Christian SE 8 Standard-Bibliothek |
title_short | Java SE 9-Standard-Bibliothek |
title_sort | java se 9 standard bibliothek das handbuch fur entwickler |
title_sub | das Handbuch für Entwickler |
topic | Java Programmiersprache (DE-588)4401313-9 gnd Java Standard Edition 9 (DE-588)113696553X gnd |
topic_facet | Java Programmiersprache Java Standard Edition 9 |
url | http://openbook.rheinwerk-verlag.de/java8/ http://deposit.dnb.de/cgi-bin/dokserv?id=f596de1fc66241a891d0e84771c79c97&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029815776&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT ullenboomchristian javase9standardbibliothekdashandbuchfurentwickler AT rheinwerkverlag javase9standardbibliothekdashandbuchfurentwickler AT ullenboomchristian javaseneunstandardbibliothek AT rheinwerkverlag javaseneunstandardbibliothek AT ullenboomchristian javase9standardbibliothek AT rheinwerkverlag javase9standardbibliothek |