Friedrich Esser
JAVA 2. Java Essentials für Fortgeschrittene ; Patterns und Idiome ; Codesnippets, Übungen, Lösungen
4 Angebote ab € 6,00 €
Friedrich Esser
JAVA 2. Java Essentials für Fortgeschrittene ; Patterns und Idiome ; Codesnippets, Übungen, Lösungen
- Buch
Produktdetails
- Verlag: Galileo Press
- ISBN-13: 9783934358669
- ISBN-10: 3934358667
- Artikelnr.: 09146630
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
Dr. Friedrich Esser, Professor für Wirtschaftsinformatik an der FH Hamburg, hält Vorlesungen und Übungen zu C++, Java und Softwareengineering. Er arbeitet als Berater für öffentliche Verwaltungen und unterstützt Firmen bei der Einführung neuer Technologien.
1. Grundlagen 21
1.1 Java-Überblick 21
1.2 Programmstruktur 26
1.3 Primitive Datentypen 32
1.4 Lexikalische Grundlagen 34
1.5 Konvertierung primitiver Typen 39
1.6 Initialisierung von Variablen 43
1.7 Namenskonventionen 44
1.8 Zusammenfassung 46
1.9 Testfragen 47
2. Operatoren 51
2.1 Überblick 51
2.2 Arithmetische Operatoren 55
2.2 Unäre Operatoren 55
2.2 Binäre Operatoren 56
2.3 Referenz-Variable 57
2.4 String-Operator 59
2.5 Vergleichs-Operatoren 60
2.5 Relationale Operatoren 60
2.5 Gleichheits-Operatoren 60
2.6 Typvergleich-Operator instanceof 63
2.7 Logische Operatoren 64
2.8 Bitmanipulationen 65
2.9 Zuweisungen 71
2.10 Ternärer Operator 73
2.11 Zusammenfassung 74
2.12 Testfragen 76
3. Anweisungen 81
3.1 Überblick über Anweisungen 81
3.2 Grundlegende Anweisungen 83
3.3 Kontrollanweisungen 84
3.4 Deklaration 98
3.5 Aufruf einer Methode 105
3.6 Zusammenfassung 111
3.7 Testfragen 112
4. Modellierung und UML 117
4.1 Generalisierung und Spezialisierung 118
4.2 Klassen-Beziehungen in der UML 124
4.3 Objekt-Diagramm1 37
4.4 Interaktions-Modellierung 138
4.5 Zusammenfassung 141
5. Vererbung 143
5.1 Deklaration von Subklassen 143
5.2 Overriding vs. Overloading 146
5.3 Superklasse Object 148
5.4 Vererbung und Modifikatoren 149
5.5 Konstruktoren 153
5.6 Pros und Kons der Initialisierung 157
5.7 Initialisierer 160
5.8 Overriding vs. Shadowing 163
5.9 Speicherverwaltung 167
5.10 Kapselung (Encapsulation) 174
5.11 Zusammenfassung 176
5.12 Testfragen 177
6. Interfaces und Pattern 183
6.1 Interface: Definition und Regeln 184
6.2 Referenz-Konvertierung und -Casting 188
6.3 API: Interface vs. Klasse 191
6.4 Interface vs. Vererbung 192
6.5 Design-Pattern: generelle Entwurfsmuster 194
6.6 Interface-Pattern 195
6.7 Delegation-Pattern 199
6.8 Vererbung, Interfaces und Delegation 203
6.9 Immutable 204
6.10 Marker-Interface 205
6.11 Factory-Pattern 211
6.12 Konzeptionelle Schwächen von Interfaces 217
6.13 Zusammenfassung 218
6.14 Testfragen 219
7. Ausnahmen 223
7.1 Konzeption 224
7.2 Ausnahme-Mechanismus 225
7.3 Details zur Ausnahme-Behandlung 229
7.4 Ausnahme-Kategorien in Java 233
7.5 Overriding von Ausnahmen 237
7.6 Deklaration neuer Ausnahmen 239
7.7 Einsatz von Ausnahmen 241
7.8 Ausnahmen-Behandlung 245
7.9 Zusammenfassung 257
7.10 Testfragen 258
8. Innere Klassen 263
8.1 Arten von inneren Klassen 263
8.2 Statische innere Klassen und Interfaces 265
8.3 Nicht statische innere Klassen 268
8.4 Member-Klassen 269
8.5 Lokale Klassen 277
8.6 Anonyme Klassen 280
8.7 Firewall-Idiom: Quasi-Objekte von Interfaces 286
8.8 Generisches Verhalten 289
8.9 Zusammenfassung 292
8.10 Testfragen 293
9. Threads 297
9.1 Grundlegende Begriffe 297
9.2 Thread-Start 301
9.3 Thread-Zustände 304
9.4 Thread-Methoden 308
9.5 Race-Condition 312
9.6 Synchronisation und Deadlock 314
9.7 Vermeidungsstrategien zu Deadlocks 320
9.8 Guarded-Method: wait() und notify() 322
9.9 Weitere thread-sichere Maflnahmen 328
9.10 Thread-Mechanismen 331
9.11 Client-aktivierte asynchrone Methoden 334
9.12 Server-Aktivierung 336
9.13 Thread-Unterbrechung 342
9.14 Unbehandelte Ausnahmen in Threads 348
9.15 Zusammenfassung 351
9.16 Testfragen 352
10. Package java.lang 357
10.1 Object 357
10.2 Class 364
10.3 Wrapper-Klassen 366
10.4 String und StringBuffer 367
10.5 Math und StrictMath 369
10.6 System 373
10.7 Process 382
10.8 Runtime 383
10.9 Zusammenfassung 386
10.10 Testfragen 387
11. Package java.io 391
11.1 Überblick 391
11.2 File 393
11.3 FileDescriptor 397
11.4 Interfaces DataInput und DataOutput 398
11.5 RandomAccessFile 400
11.6 Stream-Konzept 403
11.7 Decorator-Pattern 409
11.8 Streams im Einsatz 411
11.9 Digitale Signatur für Dokumente (Byte-Streams) 417
11.10 Pipe-Streams 421
11.11 Zusammenfassung 429
11.12 Testfragen 430
12. Serialisierung 435
12.1 Serialisierung: Kommunikation auf Basis von Objekten 435
12.2 Grundlagen der Serialisierung 436
12.3 Übertragungs-Protokolle 438
12.4 Einfache Anpassungen von Serializable 449
12.5 Klassen-Evolution 456
12.6 Anpassungen der Object-Streams 459
12.7 Zusammenfassung 468
12.8 Testfragen 469
13. Reflexion 473
13.1 Klasse, Interface und Reflexion 473
13.2 Übersicht über Reflexion 474
13.3 Inspektion von Klassen und Interfaces 479
13.4 Manipulation von Klassen und Arrays 486
13.5 Introspection und Kommandos 493
13.6 Command-Pattern 496
13.7 Dynamisches Proxy-Pattern 500
13.8 Zusammenfassung 511
14. Collection-Framework 513
14.1 Aufbau 513
14.2 Interface-Hierarchie 514
14.3 Kollektions-Klassen 520
14.4 Iterator-Pattern 535
14.5 Fundamentale vs. Template-Methoden 538
14.6 Dekorieren von Kollektionen 543
14.7 Zusammenfassung 545
14.8 Testfragen 547
15. Java Foundation Classes 551
15.1 Vorbemerkungen 551
15.2 Begriffe 553
15.3 Top-Level-Container 554
15.4 Layout-Manager 567
15.5 Ereignisbehandlung 579
15.6 MFC-Architektur 594
15.7 Multi-Threading in Swing 600
15.8 Applet 605
15.9 Zusammenfassung 608
15.10 Chamäleon-Architektur 609
Index 611
1.1 Java-Überblick 21
1.2 Programmstruktur 26
1.3 Primitive Datentypen 32
1.4 Lexikalische Grundlagen 34
1.5 Konvertierung primitiver Typen 39
1.6 Initialisierung von Variablen 43
1.7 Namenskonventionen 44
1.8 Zusammenfassung 46
1.9 Testfragen 47
2. Operatoren 51
2.1 Überblick 51
2.2 Arithmetische Operatoren 55
2.2 Unäre Operatoren 55
2.2 Binäre Operatoren 56
2.3 Referenz-Variable 57
2.4 String-Operator 59
2.5 Vergleichs-Operatoren 60
2.5 Relationale Operatoren 60
2.5 Gleichheits-Operatoren 60
2.6 Typvergleich-Operator instanceof 63
2.7 Logische Operatoren 64
2.8 Bitmanipulationen 65
2.9 Zuweisungen 71
2.10 Ternärer Operator 73
2.11 Zusammenfassung 74
2.12 Testfragen 76
3. Anweisungen 81
3.1 Überblick über Anweisungen 81
3.2 Grundlegende Anweisungen 83
3.3 Kontrollanweisungen 84
3.4 Deklaration 98
3.5 Aufruf einer Methode 105
3.6 Zusammenfassung 111
3.7 Testfragen 112
4. Modellierung und UML 117
4.1 Generalisierung und Spezialisierung 118
4.2 Klassen-Beziehungen in der UML 124
4.3 Objekt-Diagramm1 37
4.4 Interaktions-Modellierung 138
4.5 Zusammenfassung 141
5. Vererbung 143
5.1 Deklaration von Subklassen 143
5.2 Overriding vs. Overloading 146
5.3 Superklasse Object 148
5.4 Vererbung und Modifikatoren 149
5.5 Konstruktoren 153
5.6 Pros und Kons der Initialisierung 157
5.7 Initialisierer 160
5.8 Overriding vs. Shadowing 163
5.9 Speicherverwaltung 167
5.10 Kapselung (Encapsulation) 174
5.11 Zusammenfassung 176
5.12 Testfragen 177
6. Interfaces und Pattern 183
6.1 Interface: Definition und Regeln 184
6.2 Referenz-Konvertierung und -Casting 188
6.3 API: Interface vs. Klasse 191
6.4 Interface vs. Vererbung 192
6.5 Design-Pattern: generelle Entwurfsmuster 194
6.6 Interface-Pattern 195
6.7 Delegation-Pattern 199
6.8 Vererbung, Interfaces und Delegation 203
6.9 Immutable 204
6.10 Marker-Interface 205
6.11 Factory-Pattern 211
6.12 Konzeptionelle Schwächen von Interfaces 217
6.13 Zusammenfassung 218
6.14 Testfragen 219
7. Ausnahmen 223
7.1 Konzeption 224
7.2 Ausnahme-Mechanismus 225
7.3 Details zur Ausnahme-Behandlung 229
7.4 Ausnahme-Kategorien in Java 233
7.5 Overriding von Ausnahmen 237
7.6 Deklaration neuer Ausnahmen 239
7.7 Einsatz von Ausnahmen 241
7.8 Ausnahmen-Behandlung 245
7.9 Zusammenfassung 257
7.10 Testfragen 258
8. Innere Klassen 263
8.1 Arten von inneren Klassen 263
8.2 Statische innere Klassen und Interfaces 265
8.3 Nicht statische innere Klassen 268
8.4 Member-Klassen 269
8.5 Lokale Klassen 277
8.6 Anonyme Klassen 280
8.7 Firewall-Idiom: Quasi-Objekte von Interfaces 286
8.8 Generisches Verhalten 289
8.9 Zusammenfassung 292
8.10 Testfragen 293
9. Threads 297
9.1 Grundlegende Begriffe 297
9.2 Thread-Start 301
9.3 Thread-Zustände 304
9.4 Thread-Methoden 308
9.5 Race-Condition 312
9.6 Synchronisation und Deadlock 314
9.7 Vermeidungsstrategien zu Deadlocks 320
9.8 Guarded-Method: wait() und notify() 322
9.9 Weitere thread-sichere Maflnahmen 328
9.10 Thread-Mechanismen 331
9.11 Client-aktivierte asynchrone Methoden 334
9.12 Server-Aktivierung 336
9.13 Thread-Unterbrechung 342
9.14 Unbehandelte Ausnahmen in Threads 348
9.15 Zusammenfassung 351
9.16 Testfragen 352
10. Package java.lang 357
10.1 Object 357
10.2 Class 364
10.3 Wrapper-Klassen 366
10.4 String und StringBuffer 367
10.5 Math und StrictMath 369
10.6 System 373
10.7 Process 382
10.8 Runtime 383
10.9 Zusammenfassung 386
10.10 Testfragen 387
11. Package java.io 391
11.1 Überblick 391
11.2 File 393
11.3 FileDescriptor 397
11.4 Interfaces DataInput und DataOutput 398
11.5 RandomAccessFile 400
11.6 Stream-Konzept 403
11.7 Decorator-Pattern 409
11.8 Streams im Einsatz 411
11.9 Digitale Signatur für Dokumente (Byte-Streams) 417
11.10 Pipe-Streams 421
11.11 Zusammenfassung 429
11.12 Testfragen 430
12. Serialisierung 435
12.1 Serialisierung: Kommunikation auf Basis von Objekten 435
12.2 Grundlagen der Serialisierung 436
12.3 Übertragungs-Protokolle 438
12.4 Einfache Anpassungen von Serializable 449
12.5 Klassen-Evolution 456
12.6 Anpassungen der Object-Streams 459
12.7 Zusammenfassung 468
12.8 Testfragen 469
13. Reflexion 473
13.1 Klasse, Interface und Reflexion 473
13.2 Übersicht über Reflexion 474
13.3 Inspektion von Klassen und Interfaces 479
13.4 Manipulation von Klassen und Arrays 486
13.5 Introspection und Kommandos 493
13.6 Command-Pattern 496
13.7 Dynamisches Proxy-Pattern 500
13.8 Zusammenfassung 511
14. Collection-Framework 513
14.1 Aufbau 513
14.2 Interface-Hierarchie 514
14.3 Kollektions-Klassen 520
14.4 Iterator-Pattern 535
14.5 Fundamentale vs. Template-Methoden 538
14.6 Dekorieren von Kollektionen 543
14.7 Zusammenfassung 545
14.8 Testfragen 547
15. Java Foundation Classes 551
15.1 Vorbemerkungen 551
15.2 Begriffe 553
15.3 Top-Level-Container 554
15.4 Layout-Manager 567
15.5 Ereignisbehandlung 579
15.6 MFC-Architektur 594
15.7 Multi-Threading in Swing 600
15.8 Applet 605
15.9 Zusammenfassung 608
15.10 Chamäleon-Architektur 609
Index 611
1. Grundlagen 21
1.1 Java-Überblick 21
1.2 Programmstruktur 26
1.3 Primitive Datentypen 32
1.4 Lexikalische Grundlagen 34
1.5 Konvertierung primitiver Typen 39
1.6 Initialisierung von Variablen 43
1.7 Namenskonventionen 44
1.8 Zusammenfassung 46
1.9 Testfragen 47
2. Operatoren 51
2.1 Überblick 51
2.2 Arithmetische Operatoren 55
2.2 Unäre Operatoren 55
2.2 Binäre Operatoren 56
2.3 Referenz-Variable 57
2.4 String-Operator 59
2.5 Vergleichs-Operatoren 60
2.5 Relationale Operatoren 60
2.5 Gleichheits-Operatoren 60
2.6 Typvergleich-Operator instanceof 63
2.7 Logische Operatoren 64
2.8 Bitmanipulationen 65
2.9 Zuweisungen 71
2.10 Ternärer Operator 73
2.11 Zusammenfassung 74
2.12 Testfragen 76
3. Anweisungen 81
3.1 Überblick über Anweisungen 81
3.2 Grundlegende Anweisungen 83
3.3 Kontrollanweisungen 84
3.4 Deklaration 98
3.5 Aufruf einer Methode 105
3.6 Zusammenfassung 111
3.7 Testfragen 112
4. Modellierung und UML 117
4.1 Generalisierung und Spezialisierung 118
4.2 Klassen-Beziehungen in der UML 124
4.3 Objekt-Diagramm1 37
4.4 Interaktions-Modellierung 138
4.5 Zusammenfassung 141
5. Vererbung 143
5.1 Deklaration von Subklassen 143
5.2 Overriding vs. Overloading 146
5.3 Superklasse Object 148
5.4 Vererbung und Modifikatoren 149
5.5 Konstruktoren 153
5.6 Pros und Kons der Initialisierung 157
5.7 Initialisierer 160
5.8 Overriding vs. Shadowing 163
5.9 Speicherverwaltung 167
5.10 Kapselung (Encapsulation) 174
5.11 Zusammenfassung 176
5.12 Testfragen 177
6. Interfaces und Pattern 183
6.1 Interface: Definition und Regeln 184
6.2 Referenz-Konvertierung und -Casting 188
6.3 API: Interface vs. Klasse 191
6.4 Interface vs. Vererbung 192
6.5 Design-Pattern: generelle Entwurfsmuster 194
6.6 Interface-Pattern 195
6.7 Delegation-Pattern 199
6.8 Vererbung, Interfaces und Delegation 203
6.9 Immutable 204
6.10 Marker-Interface 205
6.11 Factory-Pattern 211
6.12 Konzeptionelle Schwächen von Interfaces 217
6.13 Zusammenfassung 218
6.14 Testfragen 219
7. Ausnahmen 223
7.1 Konzeption 224
7.2 Ausnahme-Mechanismus 225
7.3 Details zur Ausnahme-Behandlung 229
7.4 Ausnahme-Kategorien in Java 233
7.5 Overriding von Ausnahmen 237
7.6 Deklaration neuer Ausnahmen 239
7.7 Einsatz von Ausnahmen 241
7.8 Ausnahmen-Behandlung 245
7.9 Zusammenfassung 257
7.10 Testfragen 258
8. Innere Klassen 263
8.1 Arten von inneren Klassen 263
8.2 Statische innere Klassen und Interfaces 265
8.3 Nicht statische innere Klassen 268
8.4 Member-Klassen 269
8.5 Lokale Klassen 277
8.6 Anonyme Klassen 280
8.7 Firewall-Idiom: Quasi-Objekte von Interfaces 286
8.8 Generisches Verhalten 289
8.9 Zusammenfassung 292
8.10 Testfragen 293
9. Threads 297
9.1 Grundlegende Begriffe 297
9.2 Thread-Start 301
9.3 Thread-Zustände 304
9.4 Thread-Methoden 308
9.5 Race-Condition 312
9.6 Synchronisation und Deadlock 314
9.7 Vermeidungsstrategien zu Deadlocks 320
9.8 Guarded-Method: wait() und notify() 322
9.9 Weitere thread-sichere Maflnahmen 328
9.10 Thread-Mechanismen 331
9.11 Client-aktivierte asynchrone Methoden 334
9.12 Server-Aktivierung 336
9.13 Thread-Unterbrechung 342
9.14 Unbehandelte Ausnahmen in Threads 348
9.15 Zusammenfassung 351
9.16 Testfragen 352
10. Package java.lang 357
10.1 Object 357
10.2 Class 364
10.3 Wrapper-Klassen 366
10.4 String und StringBuffer 367
10.5 Math und StrictMath 369
10.6 System 373
10.7 Process 382
10.8 Runtime 383
10.9 Zusammenfassung 386
10.10 Testfragen 387
11. Package java.io 391
11.1 Überblick 391
11.2 File 393
11.3 FileDescriptor 397
11.4 Interfaces DataInput und DataOutput 398
11.5 RandomAccessFile 400
11.6 Stream-Konzept 403
11.7 Decorator-Pattern 409
11.8 Streams im Einsatz 411
11.9 Digitale Signatur für Dokumente (Byte-Streams) 417
11.10 Pipe-Streams 421
11.11 Zusammenfassung 429
11.12 Testfragen 430
12. Serialisierung 435
12.1 Serialisierung: Kommunikation auf Basis von Objekten 435
12.2 Grundlagen der Serialisierung 436
12.3 Übertragungs-Protokolle 438
12.4 Einfache Anpassungen von Serializable 449
12.5 Klassen-Evolution 456
12.6 Anpassungen der Object-Streams 459
12.7 Zusammenfassung 468
12.8 Testfragen 469
13. Reflexion 473
13.1 Klasse, Interface und Reflexion 473
13.2 Übersicht über Reflexion 474
13.3 Inspektion von Klassen und Interfaces 479
13.4 Manipulation von Klassen und Arrays 486
13.5 Introspection und Kommandos 493
13.6 Command-Pattern 496
13.7 Dynamisches Proxy-Pattern 500
13.8 Zusammenfassung 511
14. Collection-Framework 513
14.1 Aufbau 513
14.2 Interface-Hierarchie 514
14.3 Kollektions-Klassen 520
14.4 Iterator-Pattern 535
14.5 Fundamentale vs. Template-Methoden 538
14.6 Dekorieren von Kollektionen 543
14.7 Zusammenfassung 545
14.8 Testfragen 547
15. Java Foundation Classes 551
15.1 Vorbemerkungen 551
15.2 Begriffe 553
15.3 Top-Level-Container 554
15.4 Layout-Manager 567
15.5 Ereignisbehandlung 579
15.6 MFC-Architektur 594
15.7 Multi-Threading in Swing 600
15.8 Applet 605
15.9 Zusammenfassung 608
15.10 Chamäleon-Architektur 609
Index 611
1.1 Java-Überblick 21
1.2 Programmstruktur 26
1.3 Primitive Datentypen 32
1.4 Lexikalische Grundlagen 34
1.5 Konvertierung primitiver Typen 39
1.6 Initialisierung von Variablen 43
1.7 Namenskonventionen 44
1.8 Zusammenfassung 46
1.9 Testfragen 47
2. Operatoren 51
2.1 Überblick 51
2.2 Arithmetische Operatoren 55
2.2 Unäre Operatoren 55
2.2 Binäre Operatoren 56
2.3 Referenz-Variable 57
2.4 String-Operator 59
2.5 Vergleichs-Operatoren 60
2.5 Relationale Operatoren 60
2.5 Gleichheits-Operatoren 60
2.6 Typvergleich-Operator instanceof 63
2.7 Logische Operatoren 64
2.8 Bitmanipulationen 65
2.9 Zuweisungen 71
2.10 Ternärer Operator 73
2.11 Zusammenfassung 74
2.12 Testfragen 76
3. Anweisungen 81
3.1 Überblick über Anweisungen 81
3.2 Grundlegende Anweisungen 83
3.3 Kontrollanweisungen 84
3.4 Deklaration 98
3.5 Aufruf einer Methode 105
3.6 Zusammenfassung 111
3.7 Testfragen 112
4. Modellierung und UML 117
4.1 Generalisierung und Spezialisierung 118
4.2 Klassen-Beziehungen in der UML 124
4.3 Objekt-Diagramm1 37
4.4 Interaktions-Modellierung 138
4.5 Zusammenfassung 141
5. Vererbung 143
5.1 Deklaration von Subklassen 143
5.2 Overriding vs. Overloading 146
5.3 Superklasse Object 148
5.4 Vererbung und Modifikatoren 149
5.5 Konstruktoren 153
5.6 Pros und Kons der Initialisierung 157
5.7 Initialisierer 160
5.8 Overriding vs. Shadowing 163
5.9 Speicherverwaltung 167
5.10 Kapselung (Encapsulation) 174
5.11 Zusammenfassung 176
5.12 Testfragen 177
6. Interfaces und Pattern 183
6.1 Interface: Definition und Regeln 184
6.2 Referenz-Konvertierung und -Casting 188
6.3 API: Interface vs. Klasse 191
6.4 Interface vs. Vererbung 192
6.5 Design-Pattern: generelle Entwurfsmuster 194
6.6 Interface-Pattern 195
6.7 Delegation-Pattern 199
6.8 Vererbung, Interfaces und Delegation 203
6.9 Immutable 204
6.10 Marker-Interface 205
6.11 Factory-Pattern 211
6.12 Konzeptionelle Schwächen von Interfaces 217
6.13 Zusammenfassung 218
6.14 Testfragen 219
7. Ausnahmen 223
7.1 Konzeption 224
7.2 Ausnahme-Mechanismus 225
7.3 Details zur Ausnahme-Behandlung 229
7.4 Ausnahme-Kategorien in Java 233
7.5 Overriding von Ausnahmen 237
7.6 Deklaration neuer Ausnahmen 239
7.7 Einsatz von Ausnahmen 241
7.8 Ausnahmen-Behandlung 245
7.9 Zusammenfassung 257
7.10 Testfragen 258
8. Innere Klassen 263
8.1 Arten von inneren Klassen 263
8.2 Statische innere Klassen und Interfaces 265
8.3 Nicht statische innere Klassen 268
8.4 Member-Klassen 269
8.5 Lokale Klassen 277
8.6 Anonyme Klassen 280
8.7 Firewall-Idiom: Quasi-Objekte von Interfaces 286
8.8 Generisches Verhalten 289
8.9 Zusammenfassung 292
8.10 Testfragen 293
9. Threads 297
9.1 Grundlegende Begriffe 297
9.2 Thread-Start 301
9.3 Thread-Zustände 304
9.4 Thread-Methoden 308
9.5 Race-Condition 312
9.6 Synchronisation und Deadlock 314
9.7 Vermeidungsstrategien zu Deadlocks 320
9.8 Guarded-Method: wait() und notify() 322
9.9 Weitere thread-sichere Maflnahmen 328
9.10 Thread-Mechanismen 331
9.11 Client-aktivierte asynchrone Methoden 334
9.12 Server-Aktivierung 336
9.13 Thread-Unterbrechung 342
9.14 Unbehandelte Ausnahmen in Threads 348
9.15 Zusammenfassung 351
9.16 Testfragen 352
10. Package java.lang 357
10.1 Object 357
10.2 Class 364
10.3 Wrapper-Klassen 366
10.4 String und StringBuffer 367
10.5 Math und StrictMath 369
10.6 System 373
10.7 Process 382
10.8 Runtime 383
10.9 Zusammenfassung 386
10.10 Testfragen 387
11. Package java.io 391
11.1 Überblick 391
11.2 File 393
11.3 FileDescriptor 397
11.4 Interfaces DataInput und DataOutput 398
11.5 RandomAccessFile 400
11.6 Stream-Konzept 403
11.7 Decorator-Pattern 409
11.8 Streams im Einsatz 411
11.9 Digitale Signatur für Dokumente (Byte-Streams) 417
11.10 Pipe-Streams 421
11.11 Zusammenfassung 429
11.12 Testfragen 430
12. Serialisierung 435
12.1 Serialisierung: Kommunikation auf Basis von Objekten 435
12.2 Grundlagen der Serialisierung 436
12.3 Übertragungs-Protokolle 438
12.4 Einfache Anpassungen von Serializable 449
12.5 Klassen-Evolution 456
12.6 Anpassungen der Object-Streams 459
12.7 Zusammenfassung 468
12.8 Testfragen 469
13. Reflexion 473
13.1 Klasse, Interface und Reflexion 473
13.2 Übersicht über Reflexion 474
13.3 Inspektion von Klassen und Interfaces 479
13.4 Manipulation von Klassen und Arrays 486
13.5 Introspection und Kommandos 493
13.6 Command-Pattern 496
13.7 Dynamisches Proxy-Pattern 500
13.8 Zusammenfassung 511
14. Collection-Framework 513
14.1 Aufbau 513
14.2 Interface-Hierarchie 514
14.3 Kollektions-Klassen 520
14.4 Iterator-Pattern 535
14.5 Fundamentale vs. Template-Methoden 538
14.6 Dekorieren von Kollektionen 543
14.7 Zusammenfassung 545
14.8 Testfragen 547
15. Java Foundation Classes 551
15.1 Vorbemerkungen 551
15.2 Begriffe 553
15.3 Top-Level-Container 554
15.4 Layout-Manager 567
15.5 Ereignisbehandlung 579
15.6 MFC-Architektur 594
15.7 Multi-Threading in Swing 600
15.8 Applet 605
15.9 Zusammenfassung 608
15.10 Chamäleon-Architektur 609
Index 611