ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Java 7 – Mehr als eine Insel: Das Handbuch zu den Java SE-Bibliotheken

دانلود کتاب جاوا 7 - بیش از یک جزیره: راهنمای کتابخانه های جاوا SE

Java 7 – Mehr als eine Insel: Das Handbuch zu den Java SE-Bibliotheken

مشخصات کتاب

Java 7 – Mehr als eine Insel: Das Handbuch zu den Java SE-Bibliotheken

دسته بندی: برنامه نویسی: زبان های برنامه نویسی
ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 3836215071, 9783836215077 
ناشر: Galileo Press 
سال نشر: 2012 
تعداد صفحات: 1434 
زبان: German  
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 9 مگابایت 

قیمت کتاب (تومان) : 44,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 14


در صورت تبدیل فایل کتاب Java 7 – Mehr als eine Insel: Das Handbuch zu den Java SE-Bibliotheken به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب جاوا 7 - بیش از یک جزیره: راهنمای کتابخانه های جاوا SE نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

Buchcover......Page 1
Java 7 – Mehr als eine Insel: Das Handbuch zu den Java SE-Bibliotheken......Page 2
Liebe Leserin, lieber Leser......Page 3
Auf einen Blick......Page 4
Impressum......Page 5
Inhalt......Page 6
Vorwort......Page 36
1.1.2 Unterstriche bei Ganzzahlen......Page 42
1.1.3 switch (String)......Page 43
1.1.4 Zusammenfassen gleicher catch-Blöcke mit dem multi-catch......Page 44
Multi-catch......Page 45
Problemstellung......Page 48
Neu seit Java 7: eine präzisere Typprüfung......Page 50
1.1.7 try mit Ressourcen......Page 52
1.1.9 Die Schnittstelle AutoCloseable......Page 54
AutoCloseable und Closeable......Page 55
1.1.10 Mehrere Ressourcen nutzen......Page 56
1.1.11 Unterdrückte Ausnahmen *......Page 57
Spezielle Methoden in Throwable *......Page 59
1.2 JVM-Änderungen......Page 60
Skriptsprachen auf der JVM......Page 61
Umsetzung von Duck Typing......Page 62
1.3.1 Weitere Änderungen......Page 64
2.1.1 Threads über die Schnittstelle Runnable implementieren......Page 66
2.1.2 Thread mit Runnable starten......Page 67
2.1.3 Die Klasse Thread erweitern......Page 69
run() wurde statt start() aufgerufen: Ja, wo laufen sie denn?......Page 71
2.2.1 Der Name eines Threads......Page 72
2.2.3 Die Zustände eines Threads *......Page 73
2.2.4 Schläfer gesucht......Page 74
2.2.5 Mit yield() auf Rechenzeit verzichten......Page 76
2.2.6 Der Thread als Dämon......Page 77
Wie ein Thread in Java zum Dämon wird......Page 78
2.2.7 Das Ende eines Threads......Page 79
Die Methoden interrupt() und isInterrupted()......Page 80
2.2.9 UncaughtExceptionHandler für unbehandelte Ausnahmen......Page 82
2.2.10 Der stop() von außen und die Rettung mit ThreadDeath *......Page 83
Das ThreadDeath-Objekt......Page 84
2.2.11 Ein Rendezvous mit join() *......Page 85
Warten auf den Langsamsten......Page 87
2.2.13 Priorität *......Page 88
2.3 Der Ausführer (Executor) kommt......Page 89
Konkrete Executoren......Page 90
2.3.2 Die Thread-Pools......Page 92
2.3.3 Threads mit Rückgabe über Callable......Page 93
Beispiel: Felder sortieren über Callable......Page 94
Erinnerungen an die Zukunft: die Future-Rückgabe......Page 95
Ein Runnable mit Zukunft oder als Callable......Page 96
2.3.4 Mehrere Callable abarbeiten......Page 97
2.3.5 ScheduledExecutorService für wiederholende Ausgaben und Zeitsteuerungen nutzen......Page 98
2.4.2 Probleme beim gemeinsamen Zugriff und kritische Abschnitte......Page 99
Nicht kritische Abschnitte......Page 100
2.4.3 Punkte parallel initialisieren......Page 101
2.4.4 i++ sieht atomar aus, ist es aber nicht *......Page 103
2.4.5 Kritische Abschnitte schützen......Page 104
Java-Konstrukte zum Schutz der kritischen Abschnitte......Page 105
Die Schnittstelle java.util.concurrent.locks.Lock......Page 107
ReentrantReadWriteLock......Page 110
Das Schreiben sperren, das Lesen durchlassen *......Page 111
2.4.7 Synchronisieren mit synchronized......Page 114
2.4.8 Synchronized-Methoden der Klasse StringBuffer *......Page 115
2.4.9 Mit synchronized synchronisierte Blöcke......Page 116
Statisch synchronisierte Blöcke......Page 117
2.4.10 Dann machen wir doch gleich alles synchronisiert!......Page 118
2.4.11 Lock-Freigabe im Fall von Exceptions......Page 119
2.4.12 Deadlocks......Page 120
2.4.13 Mit synchronized nachträglich synchronisieren *......Page 122
2.4.14 Monitore sind reentrant – gut für die Geschwindigkeit *......Page 123
2.4.15 Synchronisierte Methodenaufrufe zusammenfassen *......Page 124
2.5 Synchronisation über Warten und Benachrichtigen......Page 125
2.5.1 Die Schnittstelle Condition......Page 126
Warten mit await() und Aufwecken mit signal()......Page 127
Vor der Condition kommt ein Lock......Page 128
await() mit einer Zeitspanne......Page 129
2.5.2 It’s Disco-Time *......Page 130
2.5.3 Warten mit wait() und Aufwecken mit notify() *......Page 136
2.5.4 Falls der Lock fehlt: IllegalMonitorStateException *......Page 137
2.6.1 Semaphor......Page 139
Die Klasse Semaphore......Page 140
Fair und unfair......Page 143
2.6.2 Barrier und Austausch......Page 144
2.7 Atomare Operationen und frische Werte mit volatile *......Page 146
Zwischenspeicherung untersagen......Page 147
2.7.2 Das Paket java.util.concurrent.atomic......Page 149
Sortieren über das Merge-Sort-Verfahren......Page 150
Multiplikation von großen Ganzzahlen......Page 151
2.8.2 Paralleles Lösen von D&C-Algorithmen......Page 152
2.8.3 Fork und Join......Page 153
2.9.1 ThreadLocal......Page 157
Zählen mit thread-lokalen Variablen......Page 158
2.9.2 InheritableThreadLocal......Page 160
2.9.3 ThreadLocalRandom als Zufallszahlengenerator......Page 161
2.9.4 ThreadLocal bei der Performance-Optimierung......Page 162
2.10.1 Aktive Threads in der Umgebung......Page 163
2.10.2 Etwas über die aktuelle Thread-Gruppe herausfinden......Page 164
2.10.3 Threads in einer Thread-Gruppe anlegen......Page 167
Veraltete Methoden und Ähnliches......Page 170
2.11 Zeitgesteuerte Abläufe......Page 171
2.11.1 Die Typen Timer und TimerTask......Page 172
2.11.2 Job-Scheduler Quartz......Page 173
2.12 Einen Abbruch der virtuellen Maschine erkennen......Page 174
2.13 Zum Weiterlesen......Page 175
3.1 Datenstrukturen und die Collection-API......Page 176
3.1.2 Die Basis-Schnittstellen Collection und Map......Page 177
3.1.4 Das erste Programm mit Container-Klassen......Page 178
3.1.5 Die Schnittstelle Collection und Kernkonzepte......Page 179
Vergleiche im Allgemeinen auf Basis von equals()......Page 182
3.1.6 Schnittstellen, die Collection erweitern, und Map......Page 183
Die Schnittstelle Set für Mengen......Page 184
Die Schnittstelle Map......Page 185
3.1.7 Konkrete Container-Klassen......Page 186
Welche Container-Klasse nehmen?......Page 187
3.1.9 Die Schnittstelle Iterable und das erweiterte for......Page 188
3.2 Listen......Page 189
3.2.1 Erstes Listen-Beispiel......Page 190
3.2.2 Auswahlkriterium ArrayList oder LinkedList......Page 191
Positionsanfragen und Suchen......Page 192
Löschen von Elementen......Page 193
Nach Elementen suchen und ihre Position ausgeben......Page 196
Kopieren und Ausschneiden......Page 197
Eine ArrayList erzeugen......Page 198
Die interne Arbeitsweise von ArrayList und Vector *......Page 199
Die Größe eines Feldes *......Page 200
3.2.5 LinkedList......Page 201
3.2.6 Der Feld-Adapter Arrays.asList()......Page 202
3.2.7 ListIterator *......Page 203
3.2.8 toArray() von Collection verstehen – die Gefahr einer Falle erkennen......Page 205
Die Lösung für das Problem......Page 207
3.2.9 Primitive Elemente in Datenstrukturen verwalten......Page 208
3.3 Mengen (Sets)......Page 209
3.3.1 Ein erstes Mengen-Beispiel......Page 210
3.3.2 Methoden der Schnittstelle Set......Page 213
3.3.3 HashSet......Page 214
3.3.4 TreeSet – die sortierte Menge......Page 215
Die Methode equals() und die Vergleichsmethoden......Page 216
3.3.5 Die Schnittstellen NavigableSet und SortedSet......Page 217
3.4 Stack (Kellerspeicher, Stapel)......Page 219
3.4.1 Die Methoden von Stack......Page 220
3.5 Queues (Schlangen) und Deques......Page 221
3.5.1 Queue-Klassen......Page 222
3.5.2 Deque-Klassen......Page 223
3.5.4 PriorityQueue......Page 224
Comparator für wichtige Strings......Page 226
Wichtige Meldungen in der Prioritätswarteschlange......Page 228
3.6.1 Die Klassen HashMap und TreeMap......Page 229
Die Klasse TreeMap und die Schnittstelle SortedMap/NavigableMap......Page 231
Daten einfügen......Page 232
Daten auslesen......Page 233
Größe und Leertest......Page 234
3.6.3 Über die Bedeutung von equals() und hashCode()......Page 235
3.6.4 Eigene Objekte hashen......Page 236
3.6.7 Aufzählungen und Ansichten des Assoziativspeichers......Page 238
Verändernde Ansichten......Page 241
Der Füllfaktor und die Konstruktoren......Page 242
3.7.1 Properties setzen und lesen......Page 244
Zusammenfassung der Methoden......Page 245
3.7.4 Eigenschaften auf der Konsole ausgeben *......Page 246
3.7.5 Properties laden und speichern......Page 247
Properties im XML-Format speichern......Page 248
3.7.6 Klassenbeziehungen: Properties und Hashtable *......Page 249
3.8.1 Die Schnittstelle Iterator......Page 250
Beim Iterator geht es immer nur vorwärts......Page 251
3.8.2 Der Iterator kann (eventuell auch) löschen......Page 252
3.8.3 Einen Zufallszahleniterator schreiben......Page 253
Der typisierte Iterator......Page 255
Iterator und erweitertes for......Page 256
Einen eigenen Iterator und Iterable-Implementierung......Page 257
3.8.5 Fail-Fast-Iterator und die ConcurrentModificationException......Page 259
CurrentModificationException vermeiden......Page 260
Konvertieren von Enumeration, Iterator, Iterable *......Page 261
3.9 Algorithmen in Collections......Page 262
3.9.1 Die Bedeutung von Ordnung mit Comparator und Comparable......Page 264
3.9.2 Sortieren......Page 265
Strings sortieren, auch unabhängig von der Großund Kleinschreibung......Page 266
Implementierung von sort() über Arrays.sort() *......Page 267
3.9.3 Den größten und kleinsten Wert einer Collection finden......Page 268
Aufbauen, Schütteln, Beschneiden, Größensuche......Page 269
Implementierung der Extremwertmethoden bei Comparable-Objekten......Page 270
3.9.4 Nicht-änderbare Datenstrukturen, immutable oder nur-lesen?......Page 271
Collections.unmodifiableXXX()......Page 272
3.9.5 Null Object Pattern und leere Sammlungen/Iteratoren zurückgeben......Page 275
Im API-Design immutable Listen in der Rückgabe bevorzugen......Page 276
Collections.emptyXXX()......Page 277
3.9.6 Mit der Halbierungssuche nach Elementen fahnden......Page 279
3.9.7 Ersetzen, Kopieren, Füllen, Umdrehen, Rotieren *......Page 280
3.9.8 Listen durchwürfeln *......Page 282
3.9.10 Singletons *......Page 283
3.9.11 nCopies() *......Page 284
3.10.2 Nebenläufiger Assoziativspeicher und die Schnittstelle ConcurrentMap......Page 285
3.10.4 CopyOnWriteArrayList und CopyOnWriteArraySet......Page 286
Iteratoren von synchronisierten Wrappern......Page 287
3.10.7 ArrayBlockingQueue und LinkedBlockingQueue......Page 288
Beispiel mit unbeschränkter LinkedBlockingQueue......Page 289
Tickets mit Priorität......Page 291
Tickets generieren und mit der blockierenden Warteschlange verarbeiten......Page 293
3.11.1 Beispiel Multi-Set und Multi-Map......Page 295
3.11.2 Datenstrukturen aus Guava......Page 296
3.11.3 Utility-Klassen von Guava......Page 298
3.11.4 Prädikate......Page 299
3.12 Die Klasse BitSet für Bitmengen *......Page 300
3.12.1 Ein BitSet anlegen, füllen und erfragen......Page 301
3.12.2 Mengenorientierte Operationen......Page 302
3.12.3 Methodenübersicht......Page 303
Implementierungsdetails......Page 304
3.13 Zum Weiterlesen......Page 305
4.1 Weltzeit *......Page 306
4.2 Wichtige Datum-Klassen im Überblick......Page 307
4.2.3 Einfache Zeitumrechnungen durch TimeUnit......Page 308
4.3 Sprachen der Länder......Page 309
4.3.1 Sprachen und Regionen über Locale-Objekte......Page 310
Methoden von Locale......Page 311
4.4 Internationalisierung und Lokalisierung......Page 313
4.4.1 ResourceBundle-Objekte und Ressource-Dateien......Page 314
4.4.3 Die Klasse ResourceBundle......Page 315
4.4.4 Ladestrategie für ResourceBundle-Objekte......Page 317
4.5.1 Objekte erzeugen und Methoden nutzen......Page 318
4.5.2 Date-Objekte sind nicht immutable......Page 320
4.6.1 Die abstrakte Klasse Calendar......Page 321
4.6.2 Der gregorianische Kalender......Page 323
Fehlerquelle: Der Standard-Konstruktor setzt eine falsche Zeitzone *......Page 325
4.6.3 Calendar nach Date und Millisekunden fragen......Page 326
4.6.4 Ostertage *......Page 327
4.6.5 Abfragen und Setzen von Datumselementen über Feldbezeichner......Page 329
Werte relativ setzen......Page 331
Ein gregorianischer Kalender mit eigenen Werten *......Page 333
4.6.6 Wie viele Tage hat der Monat, oder wie viele Monate hat ein Jahr? *......Page 334
Liegt der 1.1. immer in der der KW 1?......Page 336
4.7 Zeitzonen in Java *......Page 337
4.7.2 SimpleTimeZone......Page 338
4.7.3 Methoden von TimeZone......Page 340
4.8 Zeitdauern und der XML-Datentyp Duration *......Page 341
4.8.1 DatatypeFactory als Fabrik......Page 342
Mögliche und unmögliche Operationen......Page 343
Duration-Vergleiche......Page 344
Zusammenfassung der Duration-Methoden......Page 345
4.9.1 Ausgaben mit printf()......Page 346
4.9.2 Mit DateFormat und SimpleDateFormat formatieren......Page 347
Vorgefertigte Formatierungen......Page 349
Eine noch individuellere Ausgabe *......Page 351
4.9.3 Parsen von Datumswerten......Page 353
parse() – die Nachsichtige......Page 354
Parsen und Formatieren ab bestimmten Positionen *......Page 355
4.10 Zum Weiterlesen......Page 356
5.1 Datei und Verzeichnis......Page 358
Pfadtrenner......Page 359
Namen erfragen und auflösen......Page 361
5.1.2 Verzeichnis oder Datei? Existiert es?......Page 362
Änderungsdatum einer Datei......Page 363
Dateiattribute verändern......Page 364
Ist eine Datei eine Verknüpfung? *......Page 365
5.1.5 Verzeichnisse auflisten und Dateien filtern......Page 366
Dateien mit FilenameFilter und FileFilter nach Kriterien filtern......Page 367
Dateien aus dem aktuellen Verzeichnis filtern......Page 369
5.1.6 Dateien berühren, neue Dateien anlegen, temporäre Dateien......Page 370
5.1.7 Dateien und Verzeichnisse löschen......Page 371
Rekursiv Verzeichnisse löschen......Page 372
5.1.8 Verzeichnisse nach Dateien iterativ durchsuchen *......Page 373
5.1.9 Wurzelverzeichnis, Laufwerksnamen, Plattenspeicher *......Page 374
Namen der Laufwerke......Page 375
Freier Plattenspeicher......Page 376
5.1.11 Mit Locking Dateien sperren *......Page 377
5.1.12 Sicherheitsprüfung *......Page 378
5.2 Dateien mit wahlfreiem Zugriff......Page 379
5.2.1 Ein RandomAccessFile zum Lesen und Schreiben öffnen......Page 380
5.2.2 Aus dem RandomAccessFile lesen......Page 381
Die UTF-8-Kodierung *......Page 383
5.2.3 Schreiben mit RandomAccessFile......Page 384
5.2.5 Hin und her in der Datei......Page 385
5.3 Dateisysteme unter NIO.2......Page 386
Ein Path-Objekt aufbauen......Page 387
Path-Eigenschaften erfragen......Page 388
Normalisierung und Pfadauflösung......Page 391
Einfaches Einlesen und Schreiben von Dateien......Page 393
Kopierund Verschiebeoptionen......Page 396
5.3.4 Dateiattribute *......Page 398
Dateiattribute mit XXXFileAttributes-Typen lesen......Page 399
Zusammenfassung der XXXFileAttributes-Schnittstellen und ihrer Methoden......Page 400
Attribute über XXXAttributeView-Schnittstellen schreiben......Page 402
Attribute-Strings als Schlüssel für einen Attributspeicher......Page 403
Benutzerdefinierte Datei-Attribute......Page 406
FileAttribute......Page 407
Symbolische Verknüpfungen anlegen *......Page 408
5.3.6 MIME-Typen testen *......Page 409
Filtern......Page 411
5.3.8 Rekursive Abläufe des Verzeichnisbaums (FileVisitor) *......Page 413
Finde alle Bilder (und auch Nemo)......Page 415
Zyklen erkennen, Verknüpfungen verfolgen, Tiefen angeben......Page 416
5.3.9 Dateisysteme und Dateisystemattribute *......Page 417
Eine Zip-Datei komplett ablaufen......Page 418
FileStore und Attribute eines Dateisystems......Page 420
5.3.10 Verzeichnisse im Dateisystem überwachen *......Page 421
5.4.1 SeekableByteChannel......Page 423
5.4.3 Beispiel mit Path + SeekableByteChannel + ByteBuffer......Page 424
5.4.4 FileChannel......Page 425
5.5 Zum Weiterlesen......Page 427
6.1 Stream-Klassen und Reader/Writer am Beispiel von Dateien......Page 428
6.1.1 Mit dem FileWriter Texte in Dateien schreiben......Page 429
6.1.2 Zeichen mit der Klasse FileReader lesen......Page 431
6.1.3 Kopieren mit FileOutputStream und FileInputStream......Page 432
Kopieren von Dateien *......Page 434
6.1.4 Das FileDescriptor-Objekt *......Page 436
Beispiel: Eine kleine PPM-Grafikdatei schreiben......Page 437
6.2.1 Die abstrakten Basisklassen......Page 439
6.2.2 Übersicht über Ein-/Ausgabeklassen......Page 440
6.2.3 Die abstrakte Basisklasse OutputStream......Page 442
Über konkrete und abstrakte Schreibmethoden *......Page 443
Closeable......Page 444
6.2.5 Ein Datenschlucker *......Page 445
6.2.6 Die abstrakte Basisklasse InputStream......Page 446
6.2.7 Ressourcen aus dem Klassenpfad und aus Jar-Archiven laden......Page 447
6.2.8 Ströme mit SequenceInputStream zusammensetzen *......Page 448
6.2.9 Die abstrakte Basisklasse Writer......Page 450
Wie die abstrakten Methoden genutzt und überschrieben werden *......Page 451
6.2.11 Die abstrakte Basisklasse Reader......Page 452
Weitere Methoden......Page 453
Sprünge und Markierungen......Page 454
6.3 Formatierte Textausgaben......Page 455
6.3.1 Die Klassen PrintWriter und PrintStream......Page 456
Konstruktoren......Page 457
Zeichenkodierung und Konvertierungen......Page 458
Methodenübersicht......Page 459
Umgang im Fehlerfall......Page 460
6.3.2 System.out, System.err und System.in......Page 461
Ströme umlenken *......Page 462
6.4 Schreiben und Lesen aus Strings und Byte-Feldern......Page 463
6.4.1 Mit dem StringWriter ein String-Objekt füllen......Page 464
6.4.2 CharArrayWriter......Page 465
6.4.3 StringReader und CharArrayReader......Page 466
6.4.5 Mit ByteArrayInputStream aus einem Byte-Feld lesen......Page 468
6.5 Datenströme filtern und verketten......Page 469
6.5.2 Gepufferte Ausgaben mit BufferedWriter und BufferedOutputStream......Page 470
Beispiel zum BufferedWriter mit FileWriter und PrintWriter......Page 471
6.5.3 Gepufferte Eingaben mit BufferedReader/BufferedInputStream......Page 472
Programm zur Anzeige von Dateien......Page 473
Zeilen lesen mit BufferedReader und readLine()......Page 474
6.5.5 Daten mit der Klasse PushbackReader zurücklegen *......Page 475
Zeilennummern mit einem PushbackReader entfernen......Page 477
PushbackReader und das fehlende readLine()......Page 478
6.5.7 Basisklassen für Filter *......Page 479
6.5.8 Die Basisklasse FilterWriter *......Page 480
6.5.9 Ein LowerCaseWriter *......Page 481
6.5.10 Eingaben mit der Klasse FilterReader filtern *......Page 483
6.5.11 Anwendungen für FilterReader und FilterWriter *......Page 484
HTML-Dokument schreiben......Page 485
HTML-Tags mit einem speziellen Filter überlesen......Page 489
6.6.1 Datenkonvertierung durch den OutputStreamWriter......Page 492
6.6.2 Automatische Konvertierungen mit dem InputStreamReader......Page 493
6.7 Kommunikation zwischen Threads mit Pipes *......Page 494
6.7.1 PipedOutputStream und PipedInputStream......Page 495
Interna......Page 496
6.7.2 PipedWriter und PipedReader......Page 497
6.8.1 Die Schnittstelle Checksum......Page 499
6.8.2 Die Klasse CRC32......Page 500
CRC eines Datenstroms berechnen......Page 501
6.8.3 Die Adler32-Klasse......Page 502
6.9 Persistente Objekte und Serialisierung......Page 503
6.9.1 Objekte mit der Standard-Serialisierung speichern und lesen......Page 504
ObjectOutputStream......Page 505
Objekte über die Standard-Serialisierung lesen......Page 506
Objekte über das Netzwerk schicken......Page 507
6.9.3 Die Schnittstelle Serializable......Page 508
Die serialisierbare Klasse Person......Page 509
6.9.4 Nicht serialisierbare Attribute aussparen......Page 510
6.9.5 Das Abspeichern selbst in die Hand nehmen......Page 512
Oberklassen serialisieren sich gleich mit......Page 513
Doch noch den Standardserialisierer nutzen......Page 514
Beispiel für defaultReadObject()/defaultWriteObject() *......Page 515
6.9.6 Tiefe Objektkopien *......Page 516
6.9.7 Versionenverwaltung und die SUID......Page 518
Die eigene SUID......Page 519
6.9.8 Wie die ArrayList serialisiert *......Page 520
6.9.9 Probleme mit der Serialisierung......Page 521
6.10.2 XML-Serialisierung von JavaBeans mit JavaBeans Persistence *......Page 523
6.10.3 Die Open-Source-Bibliothek XStream *......Page 526
6.11.1 StreamTokenizer......Page 527
6.12 Zum Weiterlesen......Page 530
7.1 Auszeichnungssprachen......Page 532
7.1.2 Extensible Markup Language (XML)......Page 533
Verwendung von Tags......Page 534
Spezielle Zeichen in XML (Entitäten)......Page 535
7.2.2 Beschreibungssprache für den Aufbau von XML-Dokumenten......Page 536
Document Type Definition (DTD)......Page 537
Attributbeschreibung......Page 538
Bezugnahme auf eine DTD......Page 539
Party-Schema......Page 540
Simple und komplexe Typen......Page 542
7.2.4 Namensraum (Namespace)......Page 543
7.2.5 XML-Applikationen *......Page 544
7.3 Die Java-APIs für XML......Page 545
7.3.4 Java Document Object Model (JDOM)......Page 546
Java API for XML Parsing (JAXP)......Page 547
7.3.6 DOM-Bäume einlesen mit JAXP *......Page 548
7.4.1 Bean für JAXB aufbauen......Page 549
7.4.2 JAXBContext und die Marshaller......Page 550
7.4.3 Ganze Objektgraphen schreiben und lesen......Page 551
7.4.4 Validierung......Page 554
Mit schemagen aus JAXB-Beans eine XML-Schema-Datei generieren......Page 555
Schema-Validierung mit JAXB......Page 556
Zugriff über Setter/Getter oder Attribute......Page 558
Reihenfolge der Elemente ändern......Page 559
Kompakte Listendarstellung......Page 560
Anpassen der XML-Abbildung......Page 561
Der spezielle Datentyp XMLGregorianCalendar......Page 563
Hierarchien einsetzen......Page 564
7.4.6 Beans aus XML-Schema-Datei generieren......Page 566
xjc aufrufen......Page 567
Konflikte in der Schema-Datei *......Page 570
7.5 Serielle Verarbeitung mit StAX......Page 571
7.5.1 Unterschiede der Verarbeitungsmodelle......Page 572
7.5.2 XML-Dateien mit dem Cursor-Verfahren lesen......Page 573
7.5.3 XML-Dateien mit dem Iterator-Verfahren verarbeiten *......Page 577
7.5.4 Mit Filtern arbeiten *......Page 579
7.5.5 XML-Dokumente schreiben......Page 580
XMLEventWriter *......Page 581
7.6 Serielle Verarbeitung von XML mit SAX *......Page 583
7.6.1 Schnittstellen von SAX......Page 584
7.6.3 Operationen der Schnittstelle ContentHandler......Page 585
7.6.4 ErrorHandler und EntityResolver......Page 588
7.7.2 Paketübersicht *......Page 589
Die Pakete org.jdom.output und org.jdom.input......Page 590
Ein JDOM-Document im Speicher erstellen......Page 591
7.7.4 Eingaben aus der Datei lesen......Page 592
7.7.5 Das Dokument im XML-Format ausgeben......Page 593
7.7.6 Der Dokumenttyp *......Page 594
Wurzelelement......Page 595
Zugriff auf Elemente......Page 596
Elementinhalte auslesen und setzen......Page 598
7.7.9 Liste mit Unterelementen erzeugen *......Page 600
7.7.10 Neue Elemente einfügen und ändern......Page 601
7.7.11 Attributinhalte lesen und ändern......Page 604
Knoten(-mengen) selektieren......Page 607
XPath mit JDOM......Page 608
7.8.1 Templates und XPath als Kernelemente von XSLT......Page 611
7.8.2 Umwandlung von XML-Dateien mit JDOM und JAXP......Page 614
7.9.2 Validator......Page 615
7.10 Zum Weiterlesen......Page 616
8 Dateiformate......Page 618
8.1.2 CSV-Dateien......Page 619
8.1.3 JSON-Serialisierung mit Jackson......Page 620
8.2.1 (X)HTML......Page 621
CyberNeko......Page 622
8.2.3 Microsoft Office-Dokumente......Page 623
compress/uncompress, GZip/GunZip......Page 625
8.3.1 Java-Unterstützung beim Komprimieren......Page 626
8.3.2 Daten packen und entpacken......Page 627
8.3.3 Datenströme komprimieren......Page 628
Daten packen......Page 629
GZip-Kommandozeilenprogramm......Page 630
Daten entpacken......Page 631
GunZip-Kommandozeilenprogramm......Page 632
8.3.4 Zip-Archive......Page 633
Die Klassen ZipFile und ZipEntry......Page 634
ZipEntry und die Datei-Attribute......Page 636
Dateien auspacken......Page 637
Ein Archiv Datei für Datei entpacken......Page 638
Einträge dem Zip-Archiv hinzufügen......Page 640
8.5.1 Die Arbeit mit AudioClip......Page 641
Java Sound API......Page 642
MIDI-Dateien abspielen......Page 643
9.1.1 Swing-Fenster mit javax.swing.JFrame darstellen......Page 646
Mit add() auf den Container......Page 647
9.1.2 Fenster schließbar machen – setDefaultCloseOperation()......Page 648
9.1.4 Größe und Position des Fensters verändern......Page 649
9.1.5 Fensterund Dialog-Dekoration, Transparenz *......Page 650
9.1.6 Die Klasse Toolkit *......Page 651
9.1.8 Zum Vergleich: AWT-Fenster darstellen *......Page 652
9.2 Beschriftungen (JLabel)......Page 654
Grafik und Beschriftung......Page 655
Text und Ausrichtung des JLabel......Page 656
9.2.1 Mehrzeiliger Text, HTML in der Darstellung......Page 657
9.3.1 Die Klasse ImageIcon......Page 658
ImageIcon-API......Page 659
9.3.2 Die Schnittstelle Icon und eigene Icons zeichnen *......Page 660
9.4 Es tut sich was – Ereignisse beim AWT......Page 662
9.4.1 Die Ereignisquellen und Horcher (Listener) von Swing......Page 663
Die Schnittstelle WindowListener......Page 664
Wer implementiert die Schnittstelle WindowListener?......Page 665
Fenster-Schließ-Horcher......Page 666
Fensterschließer registrieren......Page 667
Der Unterschied zwischen windowClosing() und windowClosed() *......Page 668
9.4.4 Adapterklassen nutzen......Page 669
Auf Klicks reagieren......Page 671
Mini-Multiplikationsrechner......Page 672
9.4.6 Aufrufen der Listener im AWT-Event-Thread......Page 673
AWTEvent und Unterklassen WindowEvent, KeyEvent, .........Page 674
Events auf verschiedenen Ebenen......Page 675
9.5.1 Normale Schaltflächen (JButton)......Page 677
Die JButton-API......Page 678
9.5.2 Der aufmerksame ActionListener......Page 679
9.5.3 Schaltflächen-Ereignisse vom Typ ActionEvent......Page 680
9.5.4 Basisklasse AbstractButton......Page 681
Bilder auf Schaltflächen je nach Zustand *......Page 682
9.5.5 Wechselknopf (JToggleButton)......Page 683
9.6 Textkomponenten......Page 684
9.6.1 Text in einer Eingabezeile......Page 685
Das Caret *......Page 686
9.6.3 Geschützte Eingaben (JPasswordField)......Page 687
9.6.4 Validierende Eingabefelder (JFormattedTextField)......Page 688
9.6.5 Einfache mehrzeilige Textfelder (JTextArea)......Page 689
Scrolling......Page 692
9.6.6 Editor-Klasse (JEditorPane) *......Page 693
9.7 Swing Action *......Page 695
Eigenschaften der Action-Objekte......Page 696
9.8.1 Hinzufügen von Komponenten......Page 698
9.8.2 Tooltips (Kurzhinweise)......Page 699
9.8.3 Rahmen (Border) *......Page 700
Die Rahmenfabrik (BorderFactory)......Page 701
9.8.4 Fokus und Navigation *......Page 702
9.8.5 Ereignisse jeder Komponente *......Page 703
Auf Tastendrücke hören: KeyListener und KeyEvent......Page 704
Mausrad-Unterstützung......Page 706
Die Position der Komponente......Page 707
9.8.7 Komponenten-Ereignisse *......Page 708
Abfolge beim Zeichnen: paint(), paintComponent(), UI-Delegate......Page 709
revalidate(), invalidate(), validate(), repaint()......Page 710
9.9 Container......Page 712
9.9.1 Standardcontainer (JPanel)......Page 713
Der Viewport *......Page 714
9.9.3 Reiter (JTabbedPane)......Page 715
9.9.4 Teilungskomponente (JSplitPane)......Page 716
9.10 Alles Auslegungssache: die Layoutmanager......Page 717
9.10.2 Zuweisen eines Layoutmanagers......Page 718
9.10.3 Im Fluss mit FlowLayout......Page 719
9.10.4 BoxLayout......Page 721
9.10.5 Mit BorderLayout in alle Himmelsrichtungen......Page 722
API-Dokumentation......Page 725
9.10.7 Der GridBagLayoutmanager *......Page 726
GridBagConstraints-Objekt aufbauen......Page 727
Wichtige Attribute des GridBagConstraints: Breite, Höhe und Ausdehnung......Page 728
Programmierung vereinfachen......Page 729
Die restlichen Attribute......Page 731
9.10.8 Null-Layout *......Page 732
9.10.9 Weitere Layoutmanager......Page 733
9.11.1 Schieberegler (JSlider)......Page 734
9.11.2 Rollbalken (JScrollBar) *......Page 735
Die JScrollBar-API......Page 736
Der AdjustmentListener, der auf Änderungen hört......Page 738
9.12 Kontrollfelder, Optionsfelder, Kontrollfeldgruppen......Page 740
9.12.1 Kontrollfelder (JCheckBox)......Page 741
9.12.2 ItemSelectable, ItemListener und das ItemEvent......Page 742
ItemEvent an ItemListener......Page 743
Die ButtonGroup......Page 744
9.13.1 Fortschrittsbalken (JProgressBar)......Page 746
9.14.1 Die Menüleisten und die Einträge......Page 749
9.14.2 Menüeinträge definieren......Page 751
9.14.3 Einträge durch Action-Objekte beschreiben......Page 752
9.14.4 Mit der Tastatur: Mnemonics und Shortcut......Page 753
9.14.5 Der Tastatur-Shortcut (Accelerator)......Page 754
Standards wahren......Page 755
9.14.6 Tastenkürzel (Mnemonics)......Page 756
9.14.7 Symbolleisten alias Toolbars......Page 757
9.14.8 Popup-Menüs......Page 760
Popup-Menüs (JPopupMenu)......Page 761
Ein allgemeiner Listener......Page 762
Beispiel für ein JPopupMenu......Page 763
9.14.9 System-Tray nutzen *......Page 765
Modifizierte MVC-Architektur für Swing......Page 766
Model-Klassen......Page 767
9.16.1 Listen (JList)......Page 768
DefaultListModel als modifzierbares ListModel......Page 769
Ereignis bei einer Selektion......Page 772
Zugriff auf selektierte Elemente und der Selektionsmodus......Page 773
Beispiel mit Textfeld, Schaltfläche und Liste......Page 774
Renderer......Page 775
9.16.2 Auswahlmenü (JComboBox)......Page 776
Durchreichemethoden an das Model......Page 778
Ereignisse der JComboBox......Page 779
Zuordnung einer Taste mit einem Eintrag *......Page 780
Auswahlmenü mit Separator......Page 781
SpinnerListModel......Page 788
SpinnerDateModel......Page 789
9.17 Tabellen (JTable)......Page 790
9.17.1 Ein eigenes Tabellen-Model......Page 792
9.17.2 Basisklasse für eigene Modelle (AbstractTableModel)......Page 793
Ein Quadratzahlen-Model......Page 794
Das Tabellen-Model zuweisen......Page 795
Ereignisse bei Änderungen......Page 796
9.17.3 Ein vorgefertigtes Standard-Modell (DefaultTableModel)......Page 797
DefaultTableCellRenderer......Page 799
Renderer zuweisen......Page 801
9.17.5 Zell-Editoren......Page 802
9.17.7 Spalteninformationen *......Page 804
9.17.8 Tabellenkopf von Swing-Tabellen *......Page 805
9.17.9 Selektionen einer Tabelle *......Page 806
9.17.10 Automatisches Sortieren und Filtern mit RowSorter *......Page 807
Filter......Page 808
Alternative Implementierungen......Page 809
9.18.1 JTree und sein TreeModel und TreeNode......Page 810
9.18.3 Das TreeModel von JTree *......Page 812
Liste von Punkten hierarchisch darstellen......Page 813
9.19.2 JDesktopPane und die Kinder von JInternalFrame......Page 816
9.19.3 JLayeredPane......Page 818
9.20.1 JWindow und JDialog......Page 819
9.20.2 Modal oder nicht-modal?......Page 820
9.20.3 Standarddialoge mit JOptionPane......Page 821
Bestätigung einholen......Page 822
Dialogtyp und Visualisierung mit Icon......Page 823
Vollständiges Programm für eine Auswahlbox......Page 824
Filtern der Liste *......Page 826
9.20.5 Der Farbauswahldialog JColorChooser *......Page 828
JColorChooser-Objekte als spezielle Komponenten......Page 830
9.21.2 UIManager......Page 831
Ändern des Aussehens zur Laufzeit......Page 833
9.22 Swing-Komponenten neu erstellen oder verändern *......Page 834
9.22.1 Überlagerungen mit dem Swing-Komponenten-Dekorator JLayer......Page 835
9.23.1 Clipboard-Objekte......Page 837
9.23.2 Mit Transferable auf den Inhalt zugreifen......Page 838
9.23.3 DataFlavor ist das Format der Daten in der Zwischenablage......Page 839
9.23.4 Einfügungen in der Zwischenablage erkennen......Page 841
9.23.5 Drag & Drop......Page 842
9.24 Undo durchführen *......Page 843
9.25.1 Ereignisschlange (EventQueue) und AWT-Event-Thread......Page 845
9.25.2 Swing ist nicht thread-sicher......Page 846
Swing weiß mit konkurrierenden Zugriffen nicht allzu viel anzufangen......Page 847
Erlaubte Methoden......Page 848
9.25.3 invokeLater() und invokeAndWait()......Page 849
Implementierung......Page 851
9.25.4 SwingWorker......Page 852
9.25.5 Eigene Ereignisse in die Queue setzen *......Page 854
9.26 Barrierefreiheit mit der Java Accessibility API......Page 855
9.27 Zeitliches Ausführen mit dem javax.swing.Timer......Page 856
9.28 Die Zusatzkomponentenbibliothek SwingX......Page 857
9.28.2 Überblick über erweiterte Standard-Swing-Klassen......Page 858
9.28.3 Neue Swing-Klassen......Page 859
9.28.4 Weitere SwingX-Klassen......Page 860
9.29.1 Deklarative Beschreibungen der Oberfläche: Swing JavaBuilder, Swixml......Page 861
Swixml und XUL......Page 862
9.29.2 SWT (Standard Widget Toolkit)......Page 863
SWTSwing......Page 864
9.30 Zum Weiterlesen......Page 865
10.1.1 Die paint()-Methode für das AWT-Frame......Page 866
Der Grafikkontext Graphics......Page 867
10.1.2 Zeichnen von Inhalten auf ein JFrame......Page 868
10.1.4 Java 2D-API......Page 870
10.2.1 Linien......Page 871
10.2.2 Rechtecke......Page 872
10.2.3 Ovale und Kreisbögen......Page 873
Die Polygon-Klasse *......Page 875
n-Ecke zeichnen *......Page 876
10.3 Zeichenketten schreiben und Fonts......Page 877
10.3.1 Zeichenfolgen schreiben......Page 878
10.3.2 Die Font-Klasse......Page 879
10.3.4 Zeichensätze des Systems ermitteln *......Page 881
10.3.5 Neue TrueType-Fonts in Java nutzen......Page 882
10.3.6 Font-Metadaten durch FontMetrics *......Page 883
10.4 Geometrische Objekte......Page 887
10.4.1 Die Schnittstelle Shape......Page 889
10.4.2 Kreisförmiges......Page 890
10.4.4 Area und die konstruktive Flächengeometrie *......Page 891
10.4.5 Pfade *......Page 892
Windungsregel......Page 893
Windungsbeispiel......Page 894
10.4.6 Punkt in einer Form, Schnitt von Linien, Abstand Punkt/Linie *......Page 896
10.5.1 Farben und die Paint-Schnittstelle......Page 897
10.5.2 Farben mit der Klasse Color......Page 898
Zufällige Farbblöcke zeichnen......Page 899
Vordefinierte Farben......Page 901
Einen helleren oder dunkleren Farbton wählen *......Page 902
Die Farbmodelle HSB und RGB *......Page 903
10.5.3 Die Farben des Systems über SystemColor *......Page 904
Der Xor-Modus......Page 908
Die Stroke-Schnittstelle......Page 909
Linienenden (end caps)......Page 910
Linienverbindungen (line joins)......Page 911
Füllmuster (dash)......Page 913
10.6 Bilder......Page 914
10.6.1 Eine Übersicht über die Bilder-Bibliotheken......Page 915
10.6.2 Bilder mit ImageIO lesen......Page 916
10.6.3 Ein Bild zeichnen......Page 918
Bildbetrachter......Page 919
10.6.4 Programm-Icon/Fenster-Icon setzen......Page 922
10.6.6 Bilder im Speicher erzeugen *......Page 923
BufferedImage erzeugen lassen......Page 924
BufferedImage von Hand erzeugen......Page 925
10.6.7 Pixel für Pixel auslesen und schreiben *......Page 926
Ein Beispiel zum Lesen und Schreiben von Pixeln......Page 927
10.6.8 Bilder skalieren *......Page 928
Hinter den Kulissen......Page 929
10.6.9 Schreiben mit ImageIO......Page 930
Kann ImageIO ein Format behandeln? *......Page 931
Komprimieren mit ImageIO *......Page 932
Bilder in verschiedenen Kompressionsstufen speichern *......Page 933
Bilder dem Cache entnehmen......Page 935
10.7.1 Eine Kopie von Graphics erstellen......Page 936
10.7.2 Koordinatensystem verschieben......Page 937
10.7.3 Beschnitt (Clipping)......Page 938
Alternative Formen......Page 940
Verdeckte Bereiche und schnelles Bildschirm-Erneuern......Page 941
10.7.5 Transformationen mit einem AffineTransform-Objekt......Page 942
Konstruktoren der Klasse AffineTransform......Page 943
Seitenbeschreibung durch Printable......Page 945
Drucken über das print() von PrinterJob......Page 946
10.8.2 Bekannte Drucker......Page 947
10.9.1 Der Roboter......Page 948
10.9.2 Automatisch in die Tasten hauen......Page 949
10.9.4 Methoden zur Zeitsteuerung......Page 950
10.9.5 Bildschirmabzüge (Screenshots)......Page 951
10.9.7 MouseInfo und PointerInfo......Page 953
10.10 Zum Weiterlesen......Page 954
11.1 Grundlegende Begriffe......Page 956
Internet-Standards und RFC......Page 957
11.2.1 Die Klasse URI......Page 958
11.2.2 Die Klasse URL......Page 959
Ausnahmen bei der URL-Erzeugung......Page 960
11.2.3 Informationen über eine URL *......Page 962
Verweisen zwei URLs auf die gleiche Seite?......Page 963
Mit dem Scanner und dem InputStream eine Datei aus dem Netz laden......Page 964
Zum Datum......Page 966
11.3.2 Protokollund Content-Handler......Page 968
11.3.3 Im Detail: vom URL zur URLConnection......Page 969
11.3.4 Der Protokoll-Handler für Jar-Dateien......Page 970
11.3.5 Basic Authentication und Proxy-Authentifizierung......Page 972
Proxy-Authorization......Page 973
Daten nach der POST-Methode versenden......Page 974
11.4.1 Kodieren der Parameter für Serverprogramme......Page 975
11.4.2 Eine Suchmaschine mit GET-Request ansprechen......Page 976
11.4.3 POST-Request absenden......Page 977
11.5 Hostund IP-Adressen......Page 978
Die statische Methode getAllByName()......Page 981
11.5.4 NetworkInterface......Page 982
Serveradresse und Port......Page 984
11.6.3 Eine Verbindung zum Server aufbauen......Page 985
11.6.4 Server unter Spannung: die Ströme......Page 986
11.6.6 Informationen über den Socket *......Page 987
11.6.7 Reine Verbindungsdaten über SocketAddress *......Page 989
11.7 Client-Server-Kommunikation......Page 990
11.7.1 Warten auf Verbindungen......Page 991
11.7.2 Ein Multiplikationsserver......Page 992
Erweiterung durch Multithreading......Page 995
11.7.3 Blockierendes Lesen......Page 996
11.7.4 Von außen erreichbar sein *......Page 997
11.8.1 HttpComponents......Page 998
11.9.1 Das Hypertext Transfer Protocol (HTTP)......Page 999
Eine Beispielanfrage an einen Webserver......Page 1000
11.9.3 Die Antworten vom Server......Page 1003
Der Statuscode......Page 1004
General Header Fields......Page 1005
Der Dateiinhalt und der Content-Type......Page 1006
11.9.4 Webserver mit com.sun.net.httpserver.HttpServer......Page 1007
11.10 Verbindungen durch einen Proxy-Server *......Page 1008
11.10.2 Verbindungen durch die Proxy-API......Page 1009
Proxy-Server für URI ermitteln......Page 1010
Datagram-Sockets und Stream-Sockets im Vergleich......Page 1011
11.11.1 Die Klasse DatagramSocket......Page 1013
Ein Paket zum Empfang vorbereiten......Page 1014
11.11.3 Auf ein hereinkommendes Paket warten......Page 1015
11.11.4 Ein Paket zum Senden vorbereiten......Page 1016
11.11.5 Methoden der Klasse DatagramPacket......Page 1017
11.11.6 Das Paket senden......Page 1018
11.12.2 Das Simple Mail Transfer Protocol und RFC 822......Page 1020
11.12.4 Die JavaMail API......Page 1021
Session, die Verbindung......Page 1022
11.12.5 E-Mails mittels POP3 abrufen......Page 1024
Nachricht löschen......Page 1025
11.12.6 Multipart-Nachrichten verarbeiten......Page 1026
11.12.7 E-Mails versenden......Page 1028
MimeMultipart-Nachrichten schicken......Page 1029
Anhänge mitsenden......Page 1030
11.12.8 Ereignisse und Suchen......Page 1031
11.13.1 Internet Control Message Protocol (ICMP)......Page 1032
11.13.2 MAC-Adresse......Page 1033
11.14 Zum Weiterlesen......Page 1034
12.1.1 Stellvertreter helfen bei entfernten Methodenaufrufen......Page 1036
12.1.2 Standards für entfernte Objekte......Page 1038
Eine Implementierung über Sockets......Page 1039
Parameterübergabe bei getrenntem Speicher......Page 1040
12.2.4 Nutzen von RMI bei Middleware-Lösungen......Page 1041
12.2.5 Zentrale Klassen und Schnittstellen......Page 1042
12.3.1 Entfernte Schnittstelle deklarieren......Page 1043
12.3.2 Remote-Objekt-Implementierung......Page 1044
12.3.3 Stellvertreterobjekte......Page 1045
Der Server startet die Registry selbst......Page 1046
Der Port......Page 1047
12.3.5 Remote-Objekt-Implementierung exportieren und beim Namensdienst anmelden......Page 1048
Anmelden/Abmelden am Namensdienst......Page 1049
12.3.6 Einfaches Logging......Page 1050
12.3.7 Aufräumen mit dem DGC *......Page 1051
12.4 Auf der Clientseite......Page 1052
12.5.1 Klassen vom RMI-Klassenlader nachladen......Page 1053
12.6.1 RMI und CORBA......Page 1054
12.6.3 Automatische Remote-Objekt-Aktivierung......Page 1055
12.8 Zum Weiterlesen......Page 1056
Plattformübergreife Kommunikation......Page 1058
REST und SOAP......Page 1059
Wie sieht eine REST URI aus?......Page 1060
13.2.2 Jersey......Page 1061
Die Annotationen @Path und @GET......Page 1062
13.2.4 Test-Server starten......Page 1063
REST-Client mit Jersey......Page 1064
13.2.6 Content-Hander, Marshaller und verschiedene MIME-Typen......Page 1065
XML mit JAXB......Page 1066
JSON-Serialisierung......Page 1067
13.2.7 REST-Parameter......Page 1068
Parameter in JAX-RS kennzeichnen......Page 1069
13.2.8 REST-Services mit Parametern über die Jersey-Client-API aufrufen......Page 1070
13.2.9 PUT-Anforderungen und das Senden von Daten......Page 1071
13.3 Daily Soap und das SOAP-Protokoll......Page 1072
13.3.2 Web-Service-APIs und Implementierungen......Page 1073
13.3.3 @WebService in Java 6......Page 1074
Beispiel......Page 1075
13.3.5 Web-Services veröffentlichen......Page 1076
wsimport......Page 1077
Client mit Service-Klassen......Page 1078
13.4 Zum Weiterlesen......Page 1079
14.1 Dynamisch generierte Webseiten......Page 1080
Die Servlet-API......Page 1081
14.1.2 Was sind JavaServer Pages?......Page 1082
14.2.1 Servlet-Container......Page 1083
14.2.3 Webserver mit Servlet-Funktionalität......Page 1084
14.2.4 Tomcat installieren......Page 1085
Starten und Beenden......Page 1086
14.2.5 Ablageort für eigene JSPs......Page 1087
14.2.6 Webapplikationen......Page 1088
14.2.8 Web-Projekt mit Eclipse IDE for Java EE Developers......Page 1089
Ein neues Web-Projekt......Page 1090
14.3.2 Dynamische Inhalte......Page 1091
14.4 Die Expression Language (EL)......Page 1092
14.4.2 Literale......Page 1093
14.4.3 Implizite EL-Objekte......Page 1094
14.5.1 Einen Parameter auslesen......Page 1095
14.5.2 HTML-Formulare......Page 1096
14.6 Auf Beans zurückgreifen......Page 1097
14.6.3 Properties mit setzen......Page 1098
14.6.4 Bean-Klasse zum Testen von E-Mail-Adressen......Page 1099
E-Mail-Bean in der JSP nutzen......Page 1100
ohne value......Page 1101
JSTL beziehen......Page 1102
TagLibs nutzen......Page 1103
Fallunterscheidung mit und ......Page 1104
Schleifen......Page 1105
14.8 Skripting-Elemente in JSPs......Page 1106
14.8.2 JSP-Ausdrücke......Page 1107
14.8.4 Quoting......Page 1108
14.8.6 Implizite Objekte für Scriptlets und JSP-Ausdrücke......Page 1109
14.9.1 Lösungen für die Sitzungsverfolgung......Page 1110
14.9.2 Sitzungen in JSPs......Page 1111
14.10 Servlets......Page 1112
Zentrale Methoden von HttpServletRequest......Page 1114
Zentrale Methoden bei HttpServletResponse......Page 1115
14.10.1 Servlets compilieren......Page 1116
Der Deployment-Descriptor web.xml......Page 1117
14.10.3 Der Lebenszyklus eines Servlets......Page 1118
14.10.5 Servlets und Sessions......Page 1119
14.10.6 Weiterleiten und Einbinden von Servlet-Inhalten......Page 1120
14.11 Zum Weiterlesen......Page 1121
15.1.1 Applets heute......Page 1124
15.1.2 (J)Applet und Applikationen......Page 1125
15.1.3 Das erste Hallo-Applet......Page 1126
15.2.2 Parameter an das Applet übergeben......Page 1128
15.2.3 Wie das Applet den Browser-Inhalt ändern kann *......Page 1130
15.2.4 Den Ursprung des Applets erfragen......Page 1131
Applets über den AppletContext erfragen......Page 1132
Praktische Kommunikation......Page 1133
15.2.6 Was ein Applet alles darf *......Page 1135
15.2.8 Applet unter Firefox (Netscape) oder Microsoft Internet Explorer? *......Page 1136
15.4 Zum Weiterlesen......Page 1138
16.1.1 Das relationale Modell......Page 1140
16.2 Datenbanken und Tools......Page 1141
16.2.1 HSQLDB......Page 1142
PostgreSQL......Page 1143
Microsoft Access......Page 1144
ODBC einrichten und Access damit verwenden......Page 1145
Eclipse Data Tools Platform (DTP)......Page 1146
16.3 JDBC und Datenbanktreiber......Page 1149
Typ 1: JDBC-ODBC-Brücke......Page 1150
Typ 3: universeller JDBC-Treiber......Page 1151
16.3.2 JDBC-Versionen *......Page 1152
16.4.1 Schritte zur Datenbankabfrage......Page 1153
16.4.2 Ein Client für die HSQLDB-Datenbank......Page 1154
Beispieldatenbank starten......Page 1156
SQL-Anweisungen absetzen......Page 1157
JDBC-Beispiel......Page 1158
16.5 Mit Java an eine Datenbank andocken......Page 1160
16.5.2 Den Treiber laden......Page 1161
16.5.4 Log-Informationen *......Page 1163
Die Datenquelle angeben......Page 1164
Verbindung aufnehmen......Page 1165
Verbindung beenden......Page 1166
Wie der Treiber gefunden wird – hinter den Kulissen von getConnection() *......Page 1167
16.6 Datenbankabfragen......Page 1168
SQL-Anweisungen ausführen......Page 1169
16.6.2 Ergebnisse einer Abfrage in ResultSet......Page 1170
16.6.3 Java und SQL-Datentypen......Page 1171
16.6.4 Date, Time und Timestamp......Page 1174
Konvertierung von java.sql.Date in java.util.Date und umgekehrt......Page 1175
16.6.6 Eine SQL-NULL und wasNull() bei ResultSet......Page 1176
16.7 Elemente einer Datenbank hinzufügen und aktualisieren......Page 1177
16.7.1 Batch-Updates......Page 1178
Eine Verkettung unglücklicher Tatsachen......Page 1180
Daten fehlen......Page 1181
16.8.2 Implementierungen von RowSet......Page 1183
16.8.3 Der Typ CachedRowSet......Page 1184
16.8.4 Der Typ WebRowSet......Page 1185
16.9.1 PreparedStatement-Objekte vorbereiten......Page 1188
16.9.2 Werte für die Platzhalter eines PreparedStatement......Page 1190
16.11.1 Metadaten über die Tabelle......Page 1191
Einige Informationen über die Bestellelemente......Page 1192
16.11.2 Informationen über die Datenbank......Page 1195
Die DataSource-Trilogie......Page 1196
Eine DataSource im JNDI-Kontext deployen *......Page 1197
16.12.2 Gepoolte Verbindungen......Page 1199
16.13.1 Entity-Beans generieren......Page 1200
16.13.2 Die Quellen im Überblick......Page 1202
16.13.3 Persistence Unit......Page 1204
16.13.4 Ein JPA-Beispielprogramm......Page 1205
16.14 Zum Weiterlesen......Page 1206
Bezug der JSR-303-Referenz-Implementierung......Page 1208
Eine Person, die nie null heißen durfte......Page 1209
Durchführen der Validierung......Page 1210
Die Constraints im Überblick......Page 1212
Validierung von Gruppen......Page 1214
Eigene Validatoren......Page 1217
17.1.1 Technische Abhängigkeiten und POJOs......Page 1219
17.2 Wie eine Implementierung an die richtige Stelle kommt......Page 1221
17.2.1 Arbeiten mit dem ServiceLoader......Page 1222
17.2.2 Die Utility-Klasse Lookup als ServiceLoader-Fassade......Page 1224
CDI-Beispiel......Page 1225
17.3 Zum Weiterlesen......Page 1227
18.1.1 Metadaten durch JavaDoc-Tags......Page 1228
18.2.1 An ein Class-Objekt kommen......Page 1229
Umbenennungen der Klassennamen durch den Obfuscator......Page 1231
18.2.2 Was das Class-Objekt beschreibt *......Page 1232
Komponententyp bei Feldern......Page 1233
Kodierung von Feldern *......Page 1234
18.2.4 instanceof mit Class-Objekten *......Page 1236
18.2.5 Oberklassen finden *......Page 1237
18.2.6 Implementierte Interfaces einer Klasse oder eines Interfaces *......Page 1238
Dekodieren der Zahlrepräsentationen durch die Klasse Modifier......Page 1239
18.2.8 Die Arbeit auf dem Feld *......Page 1241
18.3 Attribute, Methoden und Konstruktoren......Page 1242
Reflections-Exceptions und ReflectiveOperationException......Page 1243
18.3.1 Reflections – Gespür für die Attribute einer Klasse......Page 1244
18.3.2 Methoden einer Klasse erfragen......Page 1247
18.3.4 Konstruktoren einer Klasse......Page 1251
18.4.1 Objekte erzeugen......Page 1254
Rechtecke erzeugen und erfragen......Page 1256
18.4.3 Eine generische eigene toString()-Methode *......Page 1258
18.4.4 Variablen setzen......Page 1261
18.4.6 Private Attribute ändern......Page 1263
18.4.7 Methoden aufrufen......Page 1264
18.4.8 Statische Methoden aufrufen......Page 1266
18.4.9 Dynamische Methodenaufrufe bei festen Methoden beschleunigen *......Page 1267
18.5.1 Annotationen zum Laden von Ressourcen......Page 1269
18.5.2 Neue Annotationen deklarieren......Page 1270
18.5.3 Annotationen mit genau einem Attribut......Page 1271
18.5.4 Element-Werte-Paare (Attribute) hinzufügen......Page 1272
18.5.5 Annotationsattribute vom Typ einer Aufzählung......Page 1273
18.5.6 Felder von Annotationsattributen......Page 1274
18.5.7 Vorbelegte Attribute......Page 1275
Nachträgliche Änderung und die Sinnhaftigkeit von Standardwerten......Page 1276
@Target......Page 1277
@Retention......Page 1280
18.5.9 Deklarationen für unsere Ressourcen-Annotationen......Page 1281
18.5.10 Annotierte Elemente auslesen......Page 1283
18.5.11 Auf die Annotationsattribute zugreifen......Page 1284
18.5.12 Komplettbeispiel zum Initialisieren von Ressourcen......Page 1285
18.5.13 Mögliche Nachteile von Annotationen......Page 1288
18.6 Zum Weiterlesen......Page 1289
19 Dynamische Übersetzung und Skriptsprachen......Page 1290
19.1 Codegenerierung......Page 1291
Generieren von Text......Page 1292
Quellcodegenerierung über Modelle......Page 1294
19.1.3 Erstellen von Java-Bytecode......Page 1295
19.2.1 Java Compiler API......Page 1296
19.2.2 Fehler-Diagnose......Page 1299
19.2.3 Eine im String angegebene Compiliationseinheit übersetzen......Page 1301
19.2.4 Wenn Quelle und Ziel der Speicher sind......Page 1303
Die nötigen Typen im Überblick......Page 1304
19.3.1 JavaScript-Programme ausführen......Page 1307
19.3.2 Groovy......Page 1309
Groovy-Skripte in Eclipse ausführen......Page 1313
Groovy über die Skript-API ausführen......Page 1314
19.4 Zum Weiterlesen......Page 1315
20.1.1 Logging-APIs......Page 1316
20.1.2 Logging mit java.util.logging......Page 1317
Loggen mit Log-Level......Page 1318
Log-Level......Page 1319
Konfiguration über externe Dateien......Page 1320
Das erste Beispiel......Page 1321
Logger-Konfiguration......Page 1322
Logger-Hierarchien......Page 1323
20.1.4 Die Simple Logging Facade......Page 1324
20.2 Systemzustände überwachen......Page 1325
20.3.1 MXBeans des Systems......Page 1326
20.4.1 JConsole......Page 1329
20.5 Der MBeanServer......Page 1331
20.6 Eine eigene Standard-MBean......Page 1332
20.6.2 Implementierung der Managed-Ressource......Page 1333
20.6.4 Eine eigene Bean in JConsole einbringen......Page 1334
JConsole mit Remote-Connection *......Page 1336
20.7 Zum Weiterlesen......Page 1337
21.1 Java Native Interface und Invocation-API......Page 1338
21.2.1 Den Java-Code schreiben......Page 1339
21.3.1 Die Header-Datei erzeugen......Page 1341
21.3.2 Implementierung der Funktion in C......Page 1343
Die GNU Compiler Collection unter Cygwin......Page 1344
Übersetzen mit Ant......Page 1345
21.4 Nativ die Stringlänge ermitteln......Page 1346
21.5.1 Klassendefinitionen......Page 1348
21.5.2 Zugriff auf Attribute......Page 1349
21.5.3 Methoden aufrufen......Page 1351
21.6.1 Generieren von JNI-Wrappern aus C++-Klassen und C-Headern......Page 1353
21.7 Invocation-API......Page 1354
21.8 Zum Weiterlesen......Page 1355
22.1.1 Security-API der Java SE......Page 1356
22.1.2 Cryptographic Service Providers......Page 1357
22.2 Der Sandkasten (Sandbox)......Page 1358
22.3 Sicherheitsmanager (Security Manager)......Page 1359
22.3.1 Der Sicherheitsmanager bei Applets......Page 1360
Die Schalter -Djava.security.debug und -Djava.security.manager......Page 1362
Policy-Dateien mit grant-Anweisungen......Page 1364
Standard-Policy-Dateien......Page 1365
22.3.4 Erstellen von Rechtedateien mit dem grafischen Policy-Tool......Page 1366
Format der Policy-Dateien......Page 1367
JAAS (Java Authentication and Authorization Service)......Page 1368
22.4.2 Digitale Ausweise und die Zertifizierungsstelle......Page 1369
22.4.3 Mit keytool Schlüssel erzeugen......Page 1370
22.4.4 Signieren mit jarsigner......Page 1371
22.5.1 Die MDx-Reihe......Page 1372
22.5.3 Mit der Security-API einen Fingerabdruck berechnen......Page 1373
Den Fingerabdruck berechnen......Page 1374
Den Fingerabdruck auslesen......Page 1375
22.6.1 Den Schlüssel, bitte......Page 1376
Schlüssel aus der Fabrik......Page 1377
22.6.3 Verschlüsseln von Datenströmen......Page 1378
22.7 Zum Weiterlesen......Page 1380
23.2.1 jps......Page 1382
23.2.3 jmap......Page 1383
23.2.4 jstack......Page 1384
Durch den Speicher wühlen: Heap-Dump......Page 1386
23.3.1 Eigene Doclets......Page 1391
Beispielklasse, die Ant übersetzen soll......Page 1394
23.4.3 Build den Build......Page 1395
23.4.4 Properties......Page 1396
23.4.5 Externe und vordefinierte Properties......Page 1397
23.4.6 Weitere Ant-Tasks......Page 1398
23.5 Disassembler, Decompiler und Obfuscator......Page 1399
23.5.1 Der Diassembler javap......Page 1400
Java-Bytecode am Beispiel......Page 1401
23.5.2 Decompiler......Page 1405
Java Decompiler Project (JD) und Alternativen......Page 1406
23.5.3 Obfuscatoren......Page 1407
Das Obfuscator-Programm ProGuard......Page 1408
23.6.1 Sourcecode Beautifier......Page 1409
23.6.2 Java-Programme als Systemdienst ausführen......Page 1410
23.7 Zum Weiterlesen......Page 1411
Index......Page 1412




نظرات کاربران