Christian Ullenboom
Java ist auch eine Insel - Mit Ausführungen zu Eclipse!, mit CD (Galileo Computing)
2 Angebote ab € 12,79 €
Christian Ullenboom
Java ist auch eine Insel - Mit Ausführungen zu Eclipse!, mit CD (Galileo Computing)
- Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Sind Sie reif für die Insel? Dies ist die 3. Auflage des Java-Standardwerkes: vollständig durchgesehen und überarbeitet. Besonders Einsteiger mit Programmierkenntnissen, aber auch fortgeschrittene Java-Programmierer profitieren von diesem umfassenden Werk. Die Einführung in die Sprache Java ist kompakt und anschaulich. Schnell geht es weiter mit fortgeschrittenen Themen wie Threads, Swing, Netzwerkprogrammierung, Java Beans, RMI, XML und Java, Servlets und Java Server Pages, JDBC und vielem mehr. Natürlich können Sie dieses Buch als Nachschlagewerk nutzen; unterstützt werden Sie zusätzlich…mehr
Sind Sie reif für die Insel? Dies ist die 3. Auflage des Java-Standardwerkes: vollständig durchgesehen und überarbeitet. Besonders Einsteiger mit Programmierkenntnissen, aber auch fortgeschrittene Java-Programmierer profitieren von diesem umfassenden Werk. Die Einführung in die Sprache Java ist kompakt und anschaulich. Schnell geht es weiter mit fortgeschrittenen Themen wie Threads, Swing, Netzwerkprogrammierung, Java Beans, RMI, XML und Java, Servlets und Java Server Pages, JDBC und vielem mehr. Natürlich können Sie dieses Buch als Nachschlagewerk nutzen; unterstützt werden Sie zusätzlich durch die intelligente HTML-Fassung auf der Buch-CD und im Internet.
Produktdetails
- Produktdetails
- Verlag: Galileo Press
- ISBN-13: 9783898423656
- ISBN-10: 3898423654
- Artikelnr.: 25689033
- Verlag: Galileo Press
- ISBN-13: 9783898423656
- ISBN-10: 3898423654
- Artikelnr.: 25689033
Christian Ullenboom ist Sun-zertifizierter Java Programmierer und seit 1997 Trainer und Berater für Java-Technologien und objektorientierte Analyse und Design. Seit Jahren teilt er sein Wissen mit unzähligen Besuchern seiner Website, wo er Fragen beantwortet, Inhalte bereitstellt und diskutiert. Seine Sympathie gilt Java Performance Tuning und den sinnlichen Freuden des Lebens.
1 Schon wieder eine neue Sprache? 45
... 1.1 Der erste Kontakt ... 47
... 1.2 Historischer Hintergrund ... 47
... 1.3 Eigenschaften von Java ... 49
... 1.4 Java im Vergleich zu anderen Sprachen ... 55
... 1.5 Die Rolle von Java im Web ... 56
... 1.6 Aufkommen von Stand-alone-Applikationen ... 57
... 1.7 Entwicklungs- und Laufzeitumgebungen ... 57
... 1.8 Installationsanleitung für das Java 2 SDK unter Microsoft Windows ... 62
... 1.9 Das erste Programm compilieren und testen ... 64
... 1.10 Eclipse ... 67
2 Sprachbeschreibung ... 73
... 2.1 Anweisungen und Programme ... 75
... 2.2 Programme ... 77
... 2.3 Elemente einer Programmiersprache ... 83
... 2.4 Datentypen ... 87
... 2.5 Ausdrücke ... 99
... 2.6 Bedingte Anweisungen oder Fallunterscheidungen ... 110
... 2.7 Schleifen ... 117
... 2.8 Methoden einer Klasse ... 126
... 2.9 Weitere Operatoren ... 147
... 2.10 Einfache Benutzereingaben ... 156
3 Klassen und Objekte ... 159
... 3.1 Objektorientierte Programmierung ... 161
... 3.2 Klassen benutzen ... 162
... 3.3 Die API-Dokumentation ... 170
... 3.4 Mit Referenzen arbeiten ... 171
... 3.5 Arrays ... 175
4 Der Umgang mit Zeichenketten ... 191
... 4.1 Strings und deren Anwendung ... 193
... 4.2 Veränderbare Zeichenketten mit der Klasse StringBuffer ... 206
... 4.3 Vergleiche von Zeichenketten als String und StringBuffer ... 209
... 4.4 Zeichenkodierungen umwandeln ... 210
... 4.5 Sprachabhängiges Vergleichen mit der Collator-Klasse ... 211
... 4.6 Die Klasse StringTokenizer ... 214
... 4.7 StreamTokenizer ... 217
... 4.8 Der BreakIterator als Wort- und Satztrenner ... 220
... 4.9 Formatieren mit Format-Objekten ... 222
... 4.10 Reguläre Ausdrücke ... 228
5 Mathematisches ... 231
... 5.1 Arithmetik in Java ... 233
... 5.2 Die Funktionen der Math-Klasse ... 234
... 5.3 Mathe bitte strikt ... 239
... 5.4 Die Random-Klasse ... 240
... 5.5 Große Zahlen ... 242
... 5.6 Probleme mit Java und der Mathematik ... 247
... 5.7 Das Java-Matrixpaket Jama ... 248
6 Eigene Klassen schreiben ... 251
... 6.1 Eigene Klassen definieren ... 253
... 6.2 Assoziationen zwischen Objekten ... 258
... 6.3 Privatsphäre und Sichtbarkeit ... 259
... 6.4 Statische Methoden und Variablen ... 266
... 6.5 Objekte anlegen und zerstören ... 273
... 6.6 Veraltete (deprecated) Methoden/Konstruktoren ... 284
... 6.7 Vererbung ... 286
... 6.8 Methoden überschreiben ... 291
... 6.9 Die oberste aller Klassen: Object ... 296
... 6.10 Die Oberklasse gibt Funktionalität vor ... 301
... 6.11 Abstrakte Klassen ... 309
... 6.12 Schnittstellen ... 314
... 6.13 Innere Klassen ... 324
... 6.14 Gegenseitige Abhängigkeiten von Klassen ... 338
... 6.15 Pakete ... 339
7 Exceptions ... 341
... 7.1 Problembereiche einzäunen ... 343
... 7.2 Die Klassenhierarchie der Fehler ... 350
... 7.3 Werfen eigener Exceptions ... 354
... 7.4 Rückgabewerte bei ausgelösten Ausnahmen ... 357
... 7.5 Stack-Aufruf analysieren ... 358
... 7.6 Assertions ... 360
... 7.7 Sicherheitsfragen mit dem SecurityManager klären ... 361
8 Die Funktionsbibliothek ... 363
... 8.1 Die Java-Klassenphilosophie ... 365
... 8.2 Wrapper-Klassen ... 370
... 8.3 Ausführung von externen Programmen ... 381
... 8.4 Klassenlader (Class Loader) 386
... 8.5 Compilieren von Klassen ... 388
9 Threads und nebenläufige Programmierung ... 391
... 9.1 Prozesse und Threads ... 393
... 9.2 Threads erzeugen ... 396
... 9.3 Threads schlafen ... 401
... 9.4 Die Klassen Timer und TimerTask ... 404
... 9.5 Die Zustände eines Threads ... 405
... 9.6 Arbeit niederlegen und wieder aufnehmen ... 411
... 9.7 Priorität ... 412
... 9.8 Dämonen ... 413
... 9.9 Kooperative und nichtkooperative Threads ... 414
... 9.10 Synchronisation über kritische Abschnitte ... 415
... 9.11 Variablen mit volatile kennzeichnen ... 425
... 9.12 Synchronisation über Warten und Benachrichtigen ... 427
... 9.13 Aktive Threads in der Umgebung ... 436
... 9.14 Gruppen von Threads in einer Thread-Gruppe ... 436
... 9.15 Einen Abbruch der virtuellen Maschine erkennen ... 443
10 Raum und Zeit ... 445
... 10.1 Greenwich Mean Time (GMT) 447
... 10.2 Wichtige Datum-Klassen im Überblick ... 448
... 10.3 Zeitzonen und Sprachen der Länder ... 448
... 10.4 Sprachen der Länder ... 451
... 10.5 Einfache Übersetzung durch ResourceBundle-Objekte ... 455
... 10.6 Die Klasse Date ... 457
... 10.7 Calendar und GregorianCalendar ... 458
... 10.8 Formatieren der Datumsangaben ... 466
11 Datenstrukturen und Algorithmen ... 477
... 11.1 Mit einem Iterator durch die Daten wandern ... 479
... 11.2 Datenstrukturen und die Collection-API ... 483
... 11.3 Listen ... 488
... 11.4 Stack (Kellerspeicher, Stapel) 501
... 11.5 Die Klasse HashMap und assoziative Speicher ... 503
... 11.6 Die abstrakte Klasse Dictionary ... 511
... 11.7 Die Properties-Klasse ... 511
... 11.8 Algorithmen ... 518
... 11.9 Synchronisation der Datenstrukturen ... 526
... 11.10 Typsichere Datenstrukturen ... 527
... 11.11 Die abstrakten Basisklassen für Container ... 529
... 11.12 Die Klasse BitSet für Bitmengen ... 530
... 11.13 Ein Design-Pattern durch Beobachten von Änderungen ... 534
12 Datenströme und Dateien ... 539
... 12.1 Datei und Verzeichnis ... 541
... 12.2 Dateien mit wahlfreiem Zugriff ... 555
... 12.3 Übersicht über wichtige Stream- und WriterReader ... 559
... 12.4 Eingabe- und Ausgabe-Klassen: InputStream und OutputStream ... 561
... 12.5 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden ... 579
... 12.6 Die Unterklassen von Writer ... 580
... 12.7 Die Klassen um Reader ... 597
... 12.8 Schachteln von Eingabe-Streams ... 604
... 12.9 Kommunikation zwischen Threads mit Pipes ... 612
... 12.10 Datenkompression ... 616
... 12.11 Prüfsummen ... 629
... 12.12 Zugriff auf SMB-Server ... 633
... 12.13 Persistente Objekte und Serialisierung ... 634
... 12.14 Die Logging-API ... 654
13 Die eXtensible Markup Language (XML) 657
... 13.1 Auszeichnungssprachen ... 659
... 13.2 Eigenschaften von XML-Dokumenten ... 660
... 13.3 Die Java-APIs für XML ... 669
... 13.4 XML-Dateien mit JDOM verarbeiten ... 670
... 13.5 JAXP als Java-Schnittstelle zu XML ... 685
... 13.6 Serielle Verarbeitung von XML mit SAX ... 689
14 Grafikprogrammierung mit dem AWT ... 693
... 14.1 Das Abstract-Window-Toolkit ... 695
... 14.2 Fenster unter grafischen Oberflächen ... 696
... 14.3 Das Toolkit ... 700
... 14.4 Grundlegendes zum Zeichnen ... 701
... 14.5 Punkte, Linien und Rechtecke aller Art ... 707
... 14.6 Alles was rund ist ... 709
... 14.7 Polygone und Polylines ... 710
... 14.8 Zeichenketten schreiben ... 715
... 14.9 Clipping-Operationen ... 724
... 14.10 Farben ... 727
... 14.11 Bilder anzeigen und Grafiken verwalten ... 739
... 14.12 Programm-Icon setzen ... 752
... 14.13 Grafiken speichern ... 753
... 14.14 Von Produzenten, Konsumenten und Beobachtern ... 760
... 14.15 Filter ... 770
... 14.16 Alles wird bunt mit Farbmodellen ... 774
... 14.17 Drucken ... 782
... 14.18 Java 2D-API ... 786
... 14.19 Graphic Layers Framework ... 798
... 14.20 Grafikverarbeitung ohne grafische Oberfläche ... 800
15 Komponenten, Container und Ereignisse ... 803
... 15.1 Es tut sich was - Ereignisse beim AWT ... 805
... 15.2 Varianten, das Fenster zu schließen ... 810
... 15.3 Komponenten im AWT und in Swing ... 815
... 15.4 Das Swing-Fenster JFrame ... 821
... 15.5 Ein Informationstext über die Klasse JLabel ... 823
... 15.6 Die Klasse ImageIcon ... 826
... 15.7 Eine Schaltfläche (JButton) 830
... 15.8 Tooltips ... 838
... 15.9 Horizontale und vertikale Schieberegler ... 839
... 15.10 JSlider ... 844
... 15.11 Ein Auswahlmenü - Choice, JComboBox ... 845
... 15.12 Eines aus vielen - Kontrollfelder (JCheckBox) 850
... 15.13 Kontrollfeldgruppen, Optionsfelder und JRadioButton ... 852
... 15.14 Der Fortschrittsbalken JProgressBar ... 855
... 15.15 Rahmen (Borders) 856
... 15.16 Symbolleisten alias Toolbars ... 858
... 15.17 Menüs ... 860
... 15.18 Popup-Menüs ... 869
... 15.19 Alles Auslegungssache: die Layoutmanager ... 872
... 15.20 Der Inhalt einer Zeichenfläche: JPanel ... 885
... 15.21 Das Konzept des Model-View-Controllers ... 886
... 15.22 List-Boxen ... 888
... 15.23 JSpinner ... 890
... 15.24 Texteingabefelder ... 892
... 15.25 Bäume mit JTree-Objekten ... 901
... 15.26 Tabellen mit JTable ... 903
... 15.27 JRootPane und JLayeredPane ... 915
... 15.28 Dialoge ... 915
... 15.29 Das Java-Look&Feel ... 921
... 15.30 Swing-Beschriftungen einer anderen Sprache geben ... 923
... 15.31 Die Zwischenablage (Clipboard) 924
... 15.32 Undo durchführen ... 927
... 15.33 Ereignisverarbeitung auf unterster Ebene ... 929
... 15.34 AWT, Swing und die Threads ... 930
... 15.35 Selbst definierte Cursor ... 935
... 15.36 Mausrad-Unterstützung ... 937
... 15.37 Benutzerinteraktionen automatisieren ... 937
16 Netzwerkprogrammierung ... 941
... 16.1 Grundlegende Begriffe ... 943
... 16.2 URL-Verbindungen und URL-Objekte ... 944
... 16.3 Die Klasse URLConnection ... 952
... 16.4 Das Common Gateway Interface ... 959
... 16.5 Host- und IP-Adressen ... 963
... 16.6 NetworkInterface ... 966
... 16.7 IPv6 für Java mit Jipsy ... 968
... 16.8 Socket-Programmierung ... 968
... 16.9 Client/Server-Kommunikation ... 975
... 16.10 SLL-Verbindungen mit JSSE ... 979
... 16.11 Web-Protokolle mit NetComponents nutzen ... 980
... 16.12 E-Mail ... 980
... 16.13 Arbeitsweise eines Web-Servers ... 987
... 16.14 Datagram-Sockets ... 994
... 16.15 Internet Control Message Protocol (ICMP) 1004
... 16.16 Multicast-Kommunikation ... 1006
17 Servlets und Java Server Pages ... 1007
... 17.1 Dynamische Web-Seiten und Servlets ... 1009
... 17.2 Vom Client zum Server und wieder zurück ... 1012
... 17.3 Servlets und Java Server Pages entwickeln und testen ... 1015
... 17.4 Java Server Pages ... 1019
... 17.5 Skript-Elemente ... 1020
... 17.6 Web-Applikationen ... 1022
... 17.7 Implizite Objekte ... 1023
... 17.8 Entsprechende XML-Tags ... 1024
... 17.9 Was der Browser mit auf den Weg gibt - HttpServletRequest ... 1025
... 17.10 Formulardaten ... 1027
... 17.11 Das HttpServletResponse-Objekt ... 1029
... 17.12 JSP-Direktiven ... 1031
... 17.13 Aktionen ... 1033
... 17.14 Beans ... 1035
... 17.15 Kleine Kekse: die Klasse Cookies ... 1037
... 17.16 Sitzungsverfolgung (Session Tracking) 1043
... 17.17 Tag-Libraries ... 1048
... 17.18 Das erste Servlet compilieren und ausführen ... 1051
... 17.19 Der Lebenszyklus eines Servlets ... 1053
... 17.20 Das HttpServletResponse-Objekt ... 1058
... 17.21 Objekte und Dateien per POST verschicken ... 1063
... 17.22 Servlets und Sessions ... 1065
... 17.23 Weiterleiten und Einbinden von Servlet-Inhalten ... 1065
... 17.24 Inter-Servlet-Kommunikation ... 1067
... 17.25 Internationalisierung ... 1067
... 17.26 Tomcat: Spezielles ... 1069
... 17.27 Ein Servlet generiert WAP-Seiten für das Handy ... 1071
... 17.28 Text in HTML-konformen Text umwandeln ... 1076
18 Verteilte Programmierung mit RMI und SOAP ... 1079
... 18.1 Entfernte Methoden ... 1081
... 18.2 Nutzen von RMI bei Middleware-Lösungen ... 1085
... 18.3 Die Lösung für Java ist RMI ... 1085
... 18.4 Definition einer entfernten Schnittstelle ... 1086
... 18.5 Das entfernte Objekt ... 1087
... 18.6 Stellvertreterobjekte erzeugen ... 1090
... 18.7 Der Namensdienst (Registry) 1092
... 18.8 Der Server: entfernte Objekte beim Namensdienst anmelden ... 1092
... 18.9 Einen Client programmieren ... 1094
... 18.10 Aufräumen mit dem DGC ... 1095
... 18.11 Entfernte Objekte übergeben und laden ... 1096
... 18.12 Registry wird vom Server gestartet ... 1098
... 18.13 RMI über die Firewall ... 1099
... 18.14 RMI und CORBA ... 1100
... 18.15 UnicastRemoteObject, RemoteServer und RemoteObject ... 1100
... 18.16 Daily Soap ... 1102
... 18.17 Java-API für XML Messaging (JAXM) 1106
... 18.18 Java Message Service (JMS) 1106
19 Applets, Midlets und Sound ... 1109
... 19.1 Applets und Applikationen - wer darf was? 1111
... 19.2 Das erste Hallo-Applet ... 1111
... 19.3 Die Zyklen eines Applets ... 1113
... 19.4 Parameter an das Applet übergeben ... 1113
... 19.5 Fehler in Applets finden ... 1116
... 19.6 Browserabhängiges Verhalten ... 1116
... 19.7 Datenaustausch zwischen Applets ... 1119
... 19.8 Musik in einem Applet und in Applikationen ... 1121
... 19.9 Webstart ... 1124
... 19.10 Java 2 Micro Edition ... 1124
20 Datenbankmanagement mit JDBC ... 1129
... 20.1 Das relationale Modell ... 1131
... 20.2 JDBC: der Zugriff auf Datenbanken über Java ... 1132
... 20.3 Die Rolle von SQL ... 1132
... 20.4 Datenbanktreiber für den Zugriff ... 1136
... 20.5 Datenbanken und ihre Treiber ... 1137
... 20.6 Eine Beispielabfrage ... 1143
... 20.7 Mit Java an eine Datenbank andocken ... 1145
... 20.8 Datenbankabfragen ... 1151
... 20.9 Java und SQL-Datentypen ... 1154
... 20.10 Transaktionen ... 1157
... 20.11 Elemente einer Datenbank hinzufügen und aktualisieren ... 1158
... 20.12 Vorbereitete Anweisungen (Prepared Statements) 1159
... 20.13 Metadaten ... 1162
... 20.14 Die Ausnahmen bei JDBC ... 1167
... 20.15 Java Data Objects (JDO) 1168
... 20.16 XML-Datenbanken ... 1168
21 Reflection ... 1171
... 21.1 Einfach mal reinschauen ... 1173
... 21.2 Mit dem Class-Objekt etwas über Klassen erfahren ... 1173
... 21.3 Objekte manipulieren ... 1190
... 21.4 Methoden aufrufen ... 1196
... 21.5 Informationen und Identifizierung von Paketen ... 1200
22 Komponenten durch Bohnen ... 1203
... 22.1 Grundlagen der Komponententechnik ... 1205
... 22.2 Das JavaBeans Development Kit (BDK) 1207
... 22.3 Die kleinste Bohne der Welt ... 1210
... 22.4 Jar-Archive für Komponenten ... 1211
... 22.5 Worauf JavaBeans basieren ... 1212
... 22.6 Eigenschaften ... 1213
... 22.7 Ereignisse ... 1216
... 22.8 Weitere Eigenschaften ... 1219
... 22.9 Bean-Eigenschaften anpassen ... 1223
... 22.10 Property-Editoren ... 1224
... 22.11 BeanInfo ... 1225
... 22.12 Beliebte Fehler ... 1225
23 Java Native Interface (JNI) 1227
... 23.1 Java Native Interface und Invocation-API ... 1229
... 23.2 Die Schritte zur Einbindung einer C-Funktion in ein Java-Programm ... 1230
... 23.3 Erweiterung unseres Programms ... 1233
... 23.4 Erweiterte JNI-Eigenschaften ... 1234
24 Sicherheitskonzepte ... 1239
... 24.1 Der Sandkasten (Sandbox) 1241
... 24.2 Sicherheitsmanager (Security Manager) 1241
... 24.3 Dienstprogramme zur Signierung ... 1250
... 24.4 Digitale Unterschriften ... 1252
... 24.5 Verschlüsseln von Datenströmen ... 1257
25 Dienstprogramme für die Java-Umgebung ... 1259
... 25.1 Die Werkzeuge im Überblick ... 1261
... 25.2 Der Compiler javac ... 1261
... 25.3 Das Archivformat Jar ... 1264
... 25.4 Mit JavaDoc und Doclets dokumentieren ... 1268
... 25.5 Konvertierung von Java-Bytecode in ein Windows-Exe mit JET ... 1274
... 25.6 Manteln von Java-Klassen in ein Windows-Exe mit JexePack ... 1275
... 25.7 Decompiler ... 1275
... 25.8 Obfuscate Programm RetroGuard ... 1280
... 25.9 Sourcecode Beautifier ... 1280
... 25.10 Ant ... 1281
26 Style-Guide ... 1285
... 26.1 Programmierrichtlinien ... 1287
... 26.2 Allgemeine Richtlinien ... 1287
... 26.3 Quellcode kommentieren ... 1287
... 26.4 Bezeichnernamen ... 1291
... 26.5 Formatierung ... 1293
... 26.6 Ausdrücke ... 1297
... 26.7 Anweisungen ... 1298
... 26.8 Reihenfolge der Eigenschaften in Klassen ... 1301
... 26.9 Zugriffsrechte und Zugriffsmethoden ... 1302
... 26.10 Verweise ... 1303
A Literatur ... 1305
B Die Begleit-CD ... 1311
Index ... 1313
... 1.1 Der erste Kontakt ... 47
... 1.2 Historischer Hintergrund ... 47
... 1.3 Eigenschaften von Java ... 49
... 1.4 Java im Vergleich zu anderen Sprachen ... 55
... 1.5 Die Rolle von Java im Web ... 56
... 1.6 Aufkommen von Stand-alone-Applikationen ... 57
... 1.7 Entwicklungs- und Laufzeitumgebungen ... 57
... 1.8 Installationsanleitung für das Java 2 SDK unter Microsoft Windows ... 62
... 1.9 Das erste Programm compilieren und testen ... 64
... 1.10 Eclipse ... 67
2 Sprachbeschreibung ... 73
... 2.1 Anweisungen und Programme ... 75
... 2.2 Programme ... 77
... 2.3 Elemente einer Programmiersprache ... 83
... 2.4 Datentypen ... 87
... 2.5 Ausdrücke ... 99
... 2.6 Bedingte Anweisungen oder Fallunterscheidungen ... 110
... 2.7 Schleifen ... 117
... 2.8 Methoden einer Klasse ... 126
... 2.9 Weitere Operatoren ... 147
... 2.10 Einfache Benutzereingaben ... 156
3 Klassen und Objekte ... 159
... 3.1 Objektorientierte Programmierung ... 161
... 3.2 Klassen benutzen ... 162
... 3.3 Die API-Dokumentation ... 170
... 3.4 Mit Referenzen arbeiten ... 171
... 3.5 Arrays ... 175
4 Der Umgang mit Zeichenketten ... 191
... 4.1 Strings und deren Anwendung ... 193
... 4.2 Veränderbare Zeichenketten mit der Klasse StringBuffer ... 206
... 4.3 Vergleiche von Zeichenketten als String und StringBuffer ... 209
... 4.4 Zeichenkodierungen umwandeln ... 210
... 4.5 Sprachabhängiges Vergleichen mit der Collator-Klasse ... 211
... 4.6 Die Klasse StringTokenizer ... 214
... 4.7 StreamTokenizer ... 217
... 4.8 Der BreakIterator als Wort- und Satztrenner ... 220
... 4.9 Formatieren mit Format-Objekten ... 222
... 4.10 Reguläre Ausdrücke ... 228
5 Mathematisches ... 231
... 5.1 Arithmetik in Java ... 233
... 5.2 Die Funktionen der Math-Klasse ... 234
... 5.3 Mathe bitte strikt ... 239
... 5.4 Die Random-Klasse ... 240
... 5.5 Große Zahlen ... 242
... 5.6 Probleme mit Java und der Mathematik ... 247
... 5.7 Das Java-Matrixpaket Jama ... 248
6 Eigene Klassen schreiben ... 251
... 6.1 Eigene Klassen definieren ... 253
... 6.2 Assoziationen zwischen Objekten ... 258
... 6.3 Privatsphäre und Sichtbarkeit ... 259
... 6.4 Statische Methoden und Variablen ... 266
... 6.5 Objekte anlegen und zerstören ... 273
... 6.6 Veraltete (deprecated) Methoden/Konstruktoren ... 284
... 6.7 Vererbung ... 286
... 6.8 Methoden überschreiben ... 291
... 6.9 Die oberste aller Klassen: Object ... 296
... 6.10 Die Oberklasse gibt Funktionalität vor ... 301
... 6.11 Abstrakte Klassen ... 309
... 6.12 Schnittstellen ... 314
... 6.13 Innere Klassen ... 324
... 6.14 Gegenseitige Abhängigkeiten von Klassen ... 338
... 6.15 Pakete ... 339
7 Exceptions ... 341
... 7.1 Problembereiche einzäunen ... 343
... 7.2 Die Klassenhierarchie der Fehler ... 350
... 7.3 Werfen eigener Exceptions ... 354
... 7.4 Rückgabewerte bei ausgelösten Ausnahmen ... 357
... 7.5 Stack-Aufruf analysieren ... 358
... 7.6 Assertions ... 360
... 7.7 Sicherheitsfragen mit dem SecurityManager klären ... 361
8 Die Funktionsbibliothek ... 363
... 8.1 Die Java-Klassenphilosophie ... 365
... 8.2 Wrapper-Klassen ... 370
... 8.3 Ausführung von externen Programmen ... 381
... 8.4 Klassenlader (Class Loader) 386
... 8.5 Compilieren von Klassen ... 388
9 Threads und nebenläufige Programmierung ... 391
... 9.1 Prozesse und Threads ... 393
... 9.2 Threads erzeugen ... 396
... 9.3 Threads schlafen ... 401
... 9.4 Die Klassen Timer und TimerTask ... 404
... 9.5 Die Zustände eines Threads ... 405
... 9.6 Arbeit niederlegen und wieder aufnehmen ... 411
... 9.7 Priorität ... 412
... 9.8 Dämonen ... 413
... 9.9 Kooperative und nichtkooperative Threads ... 414
... 9.10 Synchronisation über kritische Abschnitte ... 415
... 9.11 Variablen mit volatile kennzeichnen ... 425
... 9.12 Synchronisation über Warten und Benachrichtigen ... 427
... 9.13 Aktive Threads in der Umgebung ... 436
... 9.14 Gruppen von Threads in einer Thread-Gruppe ... 436
... 9.15 Einen Abbruch der virtuellen Maschine erkennen ... 443
10 Raum und Zeit ... 445
... 10.1 Greenwich Mean Time (GMT) 447
... 10.2 Wichtige Datum-Klassen im Überblick ... 448
... 10.3 Zeitzonen und Sprachen der Länder ... 448
... 10.4 Sprachen der Länder ... 451
... 10.5 Einfache Übersetzung durch ResourceBundle-Objekte ... 455
... 10.6 Die Klasse Date ... 457
... 10.7 Calendar und GregorianCalendar ... 458
... 10.8 Formatieren der Datumsangaben ... 466
11 Datenstrukturen und Algorithmen ... 477
... 11.1 Mit einem Iterator durch die Daten wandern ... 479
... 11.2 Datenstrukturen und die Collection-API ... 483
... 11.3 Listen ... 488
... 11.4 Stack (Kellerspeicher, Stapel) 501
... 11.5 Die Klasse HashMap und assoziative Speicher ... 503
... 11.6 Die abstrakte Klasse Dictionary ... 511
... 11.7 Die Properties-Klasse ... 511
... 11.8 Algorithmen ... 518
... 11.9 Synchronisation der Datenstrukturen ... 526
... 11.10 Typsichere Datenstrukturen ... 527
... 11.11 Die abstrakten Basisklassen für Container ... 529
... 11.12 Die Klasse BitSet für Bitmengen ... 530
... 11.13 Ein Design-Pattern durch Beobachten von Änderungen ... 534
12 Datenströme und Dateien ... 539
... 12.1 Datei und Verzeichnis ... 541
... 12.2 Dateien mit wahlfreiem Zugriff ... 555
... 12.3 Übersicht über wichtige Stream- und WriterReader ... 559
... 12.4 Eingabe- und Ausgabe-Klassen: InputStream und OutputStream ... 561
... 12.5 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden ... 579
... 12.6 Die Unterklassen von Writer ... 580
... 12.7 Die Klassen um Reader ... 597
... 12.8 Schachteln von Eingabe-Streams ... 604
... 12.9 Kommunikation zwischen Threads mit Pipes ... 612
... 12.10 Datenkompression ... 616
... 12.11 Prüfsummen ... 629
... 12.12 Zugriff auf SMB-Server ... 633
... 12.13 Persistente Objekte und Serialisierung ... 634
... 12.14 Die Logging-API ... 654
13 Die eXtensible Markup Language (XML) 657
... 13.1 Auszeichnungssprachen ... 659
... 13.2 Eigenschaften von XML-Dokumenten ... 660
... 13.3 Die Java-APIs für XML ... 669
... 13.4 XML-Dateien mit JDOM verarbeiten ... 670
... 13.5 JAXP als Java-Schnittstelle zu XML ... 685
... 13.6 Serielle Verarbeitung von XML mit SAX ... 689
14 Grafikprogrammierung mit dem AWT ... 693
... 14.1 Das Abstract-Window-Toolkit ... 695
... 14.2 Fenster unter grafischen Oberflächen ... 696
... 14.3 Das Toolkit ... 700
... 14.4 Grundlegendes zum Zeichnen ... 701
... 14.5 Punkte, Linien und Rechtecke aller Art ... 707
... 14.6 Alles was rund ist ... 709
... 14.7 Polygone und Polylines ... 710
... 14.8 Zeichenketten schreiben ... 715
... 14.9 Clipping-Operationen ... 724
... 14.10 Farben ... 727
... 14.11 Bilder anzeigen und Grafiken verwalten ... 739
... 14.12 Programm-Icon setzen ... 752
... 14.13 Grafiken speichern ... 753
... 14.14 Von Produzenten, Konsumenten und Beobachtern ... 760
... 14.15 Filter ... 770
... 14.16 Alles wird bunt mit Farbmodellen ... 774
... 14.17 Drucken ... 782
... 14.18 Java 2D-API ... 786
... 14.19 Graphic Layers Framework ... 798
... 14.20 Grafikverarbeitung ohne grafische Oberfläche ... 800
15 Komponenten, Container und Ereignisse ... 803
... 15.1 Es tut sich was - Ereignisse beim AWT ... 805
... 15.2 Varianten, das Fenster zu schließen ... 810
... 15.3 Komponenten im AWT und in Swing ... 815
... 15.4 Das Swing-Fenster JFrame ... 821
... 15.5 Ein Informationstext über die Klasse JLabel ... 823
... 15.6 Die Klasse ImageIcon ... 826
... 15.7 Eine Schaltfläche (JButton) 830
... 15.8 Tooltips ... 838
... 15.9 Horizontale und vertikale Schieberegler ... 839
... 15.10 JSlider ... 844
... 15.11 Ein Auswahlmenü - Choice, JComboBox ... 845
... 15.12 Eines aus vielen - Kontrollfelder (JCheckBox) 850
... 15.13 Kontrollfeldgruppen, Optionsfelder und JRadioButton ... 852
... 15.14 Der Fortschrittsbalken JProgressBar ... 855
... 15.15 Rahmen (Borders) 856
... 15.16 Symbolleisten alias Toolbars ... 858
... 15.17 Menüs ... 860
... 15.18 Popup-Menüs ... 869
... 15.19 Alles Auslegungssache: die Layoutmanager ... 872
... 15.20 Der Inhalt einer Zeichenfläche: JPanel ... 885
... 15.21 Das Konzept des Model-View-Controllers ... 886
... 15.22 List-Boxen ... 888
... 15.23 JSpinner ... 890
... 15.24 Texteingabefelder ... 892
... 15.25 Bäume mit JTree-Objekten ... 901
... 15.26 Tabellen mit JTable ... 903
... 15.27 JRootPane und JLayeredPane ... 915
... 15.28 Dialoge ... 915
... 15.29 Das Java-Look&Feel ... 921
... 15.30 Swing-Beschriftungen einer anderen Sprache geben ... 923
... 15.31 Die Zwischenablage (Clipboard) 924
... 15.32 Undo durchführen ... 927
... 15.33 Ereignisverarbeitung auf unterster Ebene ... 929
... 15.34 AWT, Swing und die Threads ... 930
... 15.35 Selbst definierte Cursor ... 935
... 15.36 Mausrad-Unterstützung ... 937
... 15.37 Benutzerinteraktionen automatisieren ... 937
16 Netzwerkprogrammierung ... 941
... 16.1 Grundlegende Begriffe ... 943
... 16.2 URL-Verbindungen und URL-Objekte ... 944
... 16.3 Die Klasse URLConnection ... 952
... 16.4 Das Common Gateway Interface ... 959
... 16.5 Host- und IP-Adressen ... 963
... 16.6 NetworkInterface ... 966
... 16.7 IPv6 für Java mit Jipsy ... 968
... 16.8 Socket-Programmierung ... 968
... 16.9 Client/Server-Kommunikation ... 975
... 16.10 SLL-Verbindungen mit JSSE ... 979
... 16.11 Web-Protokolle mit NetComponents nutzen ... 980
... 16.12 E-Mail ... 980
... 16.13 Arbeitsweise eines Web-Servers ... 987
... 16.14 Datagram-Sockets ... 994
... 16.15 Internet Control Message Protocol (ICMP) 1004
... 16.16 Multicast-Kommunikation ... 1006
17 Servlets und Java Server Pages ... 1007
... 17.1 Dynamische Web-Seiten und Servlets ... 1009
... 17.2 Vom Client zum Server und wieder zurück ... 1012
... 17.3 Servlets und Java Server Pages entwickeln und testen ... 1015
... 17.4 Java Server Pages ... 1019
... 17.5 Skript-Elemente ... 1020
... 17.6 Web-Applikationen ... 1022
... 17.7 Implizite Objekte ... 1023
... 17.8 Entsprechende XML-Tags ... 1024
... 17.9 Was der Browser mit auf den Weg gibt - HttpServletRequest ... 1025
... 17.10 Formulardaten ... 1027
... 17.11 Das HttpServletResponse-Objekt ... 1029
... 17.12 JSP-Direktiven ... 1031
... 17.13 Aktionen ... 1033
... 17.14 Beans ... 1035
... 17.15 Kleine Kekse: die Klasse Cookies ... 1037
... 17.16 Sitzungsverfolgung (Session Tracking) 1043
... 17.17 Tag-Libraries ... 1048
... 17.18 Das erste Servlet compilieren und ausführen ... 1051
... 17.19 Der Lebenszyklus eines Servlets ... 1053
... 17.20 Das HttpServletResponse-Objekt ... 1058
... 17.21 Objekte und Dateien per POST verschicken ... 1063
... 17.22 Servlets und Sessions ... 1065
... 17.23 Weiterleiten und Einbinden von Servlet-Inhalten ... 1065
... 17.24 Inter-Servlet-Kommunikation ... 1067
... 17.25 Internationalisierung ... 1067
... 17.26 Tomcat: Spezielles ... 1069
... 17.27 Ein Servlet generiert WAP-Seiten für das Handy ... 1071
... 17.28 Text in HTML-konformen Text umwandeln ... 1076
18 Verteilte Programmierung mit RMI und SOAP ... 1079
... 18.1 Entfernte Methoden ... 1081
... 18.2 Nutzen von RMI bei Middleware-Lösungen ... 1085
... 18.3 Die Lösung für Java ist RMI ... 1085
... 18.4 Definition einer entfernten Schnittstelle ... 1086
... 18.5 Das entfernte Objekt ... 1087
... 18.6 Stellvertreterobjekte erzeugen ... 1090
... 18.7 Der Namensdienst (Registry) 1092
... 18.8 Der Server: entfernte Objekte beim Namensdienst anmelden ... 1092
... 18.9 Einen Client programmieren ... 1094
... 18.10 Aufräumen mit dem DGC ... 1095
... 18.11 Entfernte Objekte übergeben und laden ... 1096
... 18.12 Registry wird vom Server gestartet ... 1098
... 18.13 RMI über die Firewall ... 1099
... 18.14 RMI und CORBA ... 1100
... 18.15 UnicastRemoteObject, RemoteServer und RemoteObject ... 1100
... 18.16 Daily Soap ... 1102
... 18.17 Java-API für XML Messaging (JAXM) 1106
... 18.18 Java Message Service (JMS) 1106
19 Applets, Midlets und Sound ... 1109
... 19.1 Applets und Applikationen - wer darf was? 1111
... 19.2 Das erste Hallo-Applet ... 1111
... 19.3 Die Zyklen eines Applets ... 1113
... 19.4 Parameter an das Applet übergeben ... 1113
... 19.5 Fehler in Applets finden ... 1116
... 19.6 Browserabhängiges Verhalten ... 1116
... 19.7 Datenaustausch zwischen Applets ... 1119
... 19.8 Musik in einem Applet und in Applikationen ... 1121
... 19.9 Webstart ... 1124
... 19.10 Java 2 Micro Edition ... 1124
20 Datenbankmanagement mit JDBC ... 1129
... 20.1 Das relationale Modell ... 1131
... 20.2 JDBC: der Zugriff auf Datenbanken über Java ... 1132
... 20.3 Die Rolle von SQL ... 1132
... 20.4 Datenbanktreiber für den Zugriff ... 1136
... 20.5 Datenbanken und ihre Treiber ... 1137
... 20.6 Eine Beispielabfrage ... 1143
... 20.7 Mit Java an eine Datenbank andocken ... 1145
... 20.8 Datenbankabfragen ... 1151
... 20.9 Java und SQL-Datentypen ... 1154
... 20.10 Transaktionen ... 1157
... 20.11 Elemente einer Datenbank hinzufügen und aktualisieren ... 1158
... 20.12 Vorbereitete Anweisungen (Prepared Statements) 1159
... 20.13 Metadaten ... 1162
... 20.14 Die Ausnahmen bei JDBC ... 1167
... 20.15 Java Data Objects (JDO) 1168
... 20.16 XML-Datenbanken ... 1168
21 Reflection ... 1171
... 21.1 Einfach mal reinschauen ... 1173
... 21.2 Mit dem Class-Objekt etwas über Klassen erfahren ... 1173
... 21.3 Objekte manipulieren ... 1190
... 21.4 Methoden aufrufen ... 1196
... 21.5 Informationen und Identifizierung von Paketen ... 1200
22 Komponenten durch Bohnen ... 1203
... 22.1 Grundlagen der Komponententechnik ... 1205
... 22.2 Das JavaBeans Development Kit (BDK) 1207
... 22.3 Die kleinste Bohne der Welt ... 1210
... 22.4 Jar-Archive für Komponenten ... 1211
... 22.5 Worauf JavaBeans basieren ... 1212
... 22.6 Eigenschaften ... 1213
... 22.7 Ereignisse ... 1216
... 22.8 Weitere Eigenschaften ... 1219
... 22.9 Bean-Eigenschaften anpassen ... 1223
... 22.10 Property-Editoren ... 1224
... 22.11 BeanInfo ... 1225
... 22.12 Beliebte Fehler ... 1225
23 Java Native Interface (JNI) 1227
... 23.1 Java Native Interface und Invocation-API ... 1229
... 23.2 Die Schritte zur Einbindung einer C-Funktion in ein Java-Programm ... 1230
... 23.3 Erweiterung unseres Programms ... 1233
... 23.4 Erweiterte JNI-Eigenschaften ... 1234
24 Sicherheitskonzepte ... 1239
... 24.1 Der Sandkasten (Sandbox) 1241
... 24.2 Sicherheitsmanager (Security Manager) 1241
... 24.3 Dienstprogramme zur Signierung ... 1250
... 24.4 Digitale Unterschriften ... 1252
... 24.5 Verschlüsseln von Datenströmen ... 1257
25 Dienstprogramme für die Java-Umgebung ... 1259
... 25.1 Die Werkzeuge im Überblick ... 1261
... 25.2 Der Compiler javac ... 1261
... 25.3 Das Archivformat Jar ... 1264
... 25.4 Mit JavaDoc und Doclets dokumentieren ... 1268
... 25.5 Konvertierung von Java-Bytecode in ein Windows-Exe mit JET ... 1274
... 25.6 Manteln von Java-Klassen in ein Windows-Exe mit JexePack ... 1275
... 25.7 Decompiler ... 1275
... 25.8 Obfuscate Programm RetroGuard ... 1280
... 25.9 Sourcecode Beautifier ... 1280
... 25.10 Ant ... 1281
26 Style-Guide ... 1285
... 26.1 Programmierrichtlinien ... 1287
... 26.2 Allgemeine Richtlinien ... 1287
... 26.3 Quellcode kommentieren ... 1287
... 26.4 Bezeichnernamen ... 1291
... 26.5 Formatierung ... 1293
... 26.6 Ausdrücke ... 1297
... 26.7 Anweisungen ... 1298
... 26.8 Reihenfolge der Eigenschaften in Klassen ... 1301
... 26.9 Zugriffsrechte und Zugriffsmethoden ... 1302
... 26.10 Verweise ... 1303
A Literatur ... 1305
B Die Begleit-CD ... 1311
Index ... 1313
1 Schon wieder eine neue Sprache? 45
... 1.1 Der erste Kontakt ... 47
... 1.2 Historischer Hintergrund ... 47
... 1.3 Eigenschaften von Java ... 49
... 1.4 Java im Vergleich zu anderen Sprachen ... 55
... 1.5 Die Rolle von Java im Web ... 56
... 1.6 Aufkommen von Stand-alone-Applikationen ... 57
... 1.7 Entwicklungs- und Laufzeitumgebungen ... 57
... 1.8 Installationsanleitung für das Java 2 SDK unter Microsoft Windows ... 62
... 1.9 Das erste Programm compilieren und testen ... 64
... 1.10 Eclipse ... 67
2 Sprachbeschreibung ... 73
... 2.1 Anweisungen und Programme ... 75
... 2.2 Programme ... 77
... 2.3 Elemente einer Programmiersprache ... 83
... 2.4 Datentypen ... 87
... 2.5 Ausdrücke ... 99
... 2.6 Bedingte Anweisungen oder Fallunterscheidungen ... 110
... 2.7 Schleifen ... 117
... 2.8 Methoden einer Klasse ... 126
... 2.9 Weitere Operatoren ... 147
... 2.10 Einfache Benutzereingaben ... 156
3 Klassen und Objekte ... 159
... 3.1 Objektorientierte Programmierung ... 161
... 3.2 Klassen benutzen ... 162
... 3.3 Die API-Dokumentation ... 170
... 3.4 Mit Referenzen arbeiten ... 171
... 3.5 Arrays ... 175
4 Der Umgang mit Zeichenketten ... 191
... 4.1 Strings und deren Anwendung ... 193
... 4.2 Veränderbare Zeichenketten mit der Klasse StringBuffer ... 206
... 4.3 Vergleiche von Zeichenketten als String und StringBuffer ... 209
... 4.4 Zeichenkodierungen umwandeln ... 210
... 4.5 Sprachabhängiges Vergleichen mit der Collator-Klasse ... 211
... 4.6 Die Klasse StringTokenizer ... 214
... 4.7 StreamTokenizer ... 217
... 4.8 Der BreakIterator als Wort- und Satztrenner ... 220
... 4.9 Formatieren mit Format-Objekten ... 222
... 4.10 Reguläre Ausdrücke ... 228
5 Mathematisches ... 231
... 5.1 Arithmetik in Java ... 233
... 5.2 Die Funktionen der Math-Klasse ... 234
... 5.3 Mathe bitte strikt ... 239
... 5.4 Die Random-Klasse ... 240
... 5.5 Große Zahlen ... 242
... 5.6 Probleme mit Java und der Mathematik ... 247
... 5.7 Das Java-Matrixpaket Jama ... 248
6 Eigene Klassen schreiben ... 251
... 6.1 Eigene Klassen definieren ... 253
... 6.2 Assoziationen zwischen Objekten ... 258
... 6.3 Privatsphäre und Sichtbarkeit ... 259
... 6.4 Statische Methoden und Variablen ... 266
... 6.5 Objekte anlegen und zerstören ... 273
... 6.6 Veraltete (deprecated) Methoden/Konstruktoren ... 284
... 6.7 Vererbung ... 286
... 6.8 Methoden überschreiben ... 291
... 6.9 Die oberste aller Klassen: Object ... 296
... 6.10 Die Oberklasse gibt Funktionalität vor ... 301
... 6.11 Abstrakte Klassen ... 309
... 6.12 Schnittstellen ... 314
... 6.13 Innere Klassen ... 324
... 6.14 Gegenseitige Abhängigkeiten von Klassen ... 338
... 6.15 Pakete ... 339
7 Exceptions ... 341
... 7.1 Problembereiche einzäunen ... 343
... 7.2 Die Klassenhierarchie der Fehler ... 350
... 7.3 Werfen eigener Exceptions ... 354
... 7.4 Rückgabewerte bei ausgelösten Ausnahmen ... 357
... 7.5 Stack-Aufruf analysieren ... 358
... 7.6 Assertions ... 360
... 7.7 Sicherheitsfragen mit dem SecurityManager klären ... 361
8 Die Funktionsbibliothek ... 363
... 8.1 Die Java-Klassenphilosophie ... 365
... 8.2 Wrapper-Klassen ... 370
... 8.3 Ausführung von externen Programmen ... 381
... 8.4 Klassenlader (Class Loader) 386
... 8.5 Compilieren von Klassen ... 388
9 Threads und nebenläufige Programmierung ... 391
... 9.1 Prozesse und Threads ... 393
... 9.2 Threads erzeugen ... 396
... 9.3 Threads schlafen ... 401
... 9.4 Die Klassen Timer und TimerTask ... 404
... 9.5 Die Zustände eines Threads ... 405
... 9.6 Arbeit niederlegen und wieder aufnehmen ... 411
... 9.7 Priorität ... 412
... 9.8 Dämonen ... 413
... 9.9 Kooperative und nichtkooperative Threads ... 414
... 9.10 Synchronisation über kritische Abschnitte ... 415
... 9.11 Variablen mit volatile kennzeichnen ... 425
... 9.12 Synchronisation über Warten und Benachrichtigen ... 427
... 9.13 Aktive Threads in der Umgebung ... 436
... 9.14 Gruppen von Threads in einer Thread-Gruppe ... 436
... 9.15 Einen Abbruch der virtuellen Maschine erkennen ... 443
10 Raum und Zeit ... 445
... 10.1 Greenwich Mean Time (GMT) 447
... 10.2 Wichtige Datum-Klassen im Überblick ... 448
... 10.3 Zeitzonen und Sprachen der Länder ... 448
... 10.4 Sprachen der Länder ... 451
... 10.5 Einfache Übersetzung durch ResourceBundle-Objekte ... 455
... 10.6 Die Klasse Date ... 457
... 10.7 Calendar und GregorianCalendar ... 458
... 10.8 Formatieren der Datumsangaben ... 466
11 Datenstrukturen und Algorithmen ... 477
... 11.1 Mit einem Iterator durch die Daten wandern ... 479
... 11.2 Datenstrukturen und die Collection-API ... 483
... 11.3 Listen ... 488
... 11.4 Stack (Kellerspeicher, Stapel) 501
... 11.5 Die Klasse HashMap und assoziative Speicher ... 503
... 11.6 Die abstrakte Klasse Dictionary ... 511
... 11.7 Die Properties-Klasse ... 511
... 11.8 Algorithmen ... 518
... 11.9 Synchronisation der Datenstrukturen ... 526
... 11.10 Typsichere Datenstrukturen ... 527
... 11.11 Die abstrakten Basisklassen für Container ... 529
... 11.12 Die Klasse BitSet für Bitmengen ... 530
... 11.13 Ein Design-Pattern durch Beobachten von Änderungen ... 534
12 Datenströme und Dateien ... 539
... 12.1 Datei und Verzeichnis ... 541
... 12.2 Dateien mit wahlfreiem Zugriff ... 555
... 12.3 Übersicht über wichtige Stream- und WriterReader ... 559
... 12.4 Eingabe- und Ausgabe-Klassen: InputStream und OutputStream ... 561
... 12.5 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden ... 579
... 12.6 Die Unterklassen von Writer ... 580
... 12.7 Die Klassen um Reader ... 597
... 12.8 Schachteln von Eingabe-Streams ... 604
... 12.9 Kommunikation zwischen Threads mit Pipes ... 612
... 12.10 Datenkompression ... 616
... 12.11 Prüfsummen ... 629
... 12.12 Zugriff auf SMB-Server ... 633
... 12.13 Persistente Objekte und Serialisierung ... 634
... 12.14 Die Logging-API ... 654
13 Die eXtensible Markup Language (XML) 657
... 13.1 Auszeichnungssprachen ... 659
... 13.2 Eigenschaften von XML-Dokumenten ... 660
... 13.3 Die Java-APIs für XML ... 669
... 13.4 XML-Dateien mit JDOM verarbeiten ... 670
... 13.5 JAXP als Java-Schnittstelle zu XML ... 685
... 13.6 Serielle Verarbeitung von XML mit SAX ... 689
14 Grafikprogrammierung mit dem AWT ... 693
... 14.1 Das Abstract-Window-Toolkit ... 695
... 14.2 Fenster unter grafischen Oberflächen ... 696
... 14.3 Das Toolkit ... 700
... 14.4 Grundlegendes zum Zeichnen ... 701
... 14.5 Punkte, Linien und Rechtecke aller Art ... 707
... 14.6 Alles was rund ist ... 709
... 14.7 Polygone und Polylines ... 710
... 14.8 Zeichenketten schreiben ... 715
... 14.9 Clipping-Operationen ... 724
... 14.10 Farben ... 727
... 14.11 Bilder anzeigen und Grafiken verwalten ... 739
... 14.12 Programm-Icon setzen ... 752
... 14.13 Grafiken speichern ... 753
... 14.14 Von Produzenten, Konsumenten und Beobachtern ... 760
... 14.15 Filter ... 770
... 14.16 Alles wird bunt mit Farbmodellen ... 774
... 14.17 Drucken ... 782
... 14.18 Java 2D-API ... 786
... 14.19 Graphic Layers Framework ... 798
... 14.20 Grafikverarbeitung ohne grafische Oberfläche ... 800
15 Komponenten, Container und Ereignisse ... 803
... 15.1 Es tut sich was - Ereignisse beim AWT ... 805
... 15.2 Varianten, das Fenster zu schließen ... 810
... 15.3 Komponenten im AWT und in Swing ... 815
... 15.4 Das Swing-Fenster JFrame ... 821
... 15.5 Ein Informationstext über die Klasse JLabel ... 823
... 15.6 Die Klasse ImageIcon ... 826
... 15.7 Eine Schaltfläche (JButton) 830
... 15.8 Tooltips ... 838
... 15.9 Horizontale und vertikale Schieberegler ... 839
... 15.10 JSlider ... 844
... 15.11 Ein Auswahlmenü - Choice, JComboBox ... 845
... 15.12 Eines aus vielen - Kontrollfelder (JCheckBox) 850
... 15.13 Kontrollfeldgruppen, Optionsfelder und JRadioButton ... 852
... 15.14 Der Fortschrittsbalken JProgressBar ... 855
... 15.15 Rahmen (Borders) 856
... 15.16 Symbolleisten alias Toolbars ... 858
... 15.17 Menüs ... 860
... 15.18 Popup-Menüs ... 869
... 15.19 Alles Auslegungssache: die Layoutmanager ... 872
... 15.20 Der Inhalt einer Zeichenfläche: JPanel ... 885
... 15.21 Das Konzept des Model-View-Controllers ... 886
... 15.22 List-Boxen ... 888
... 15.23 JSpinner ... 890
... 15.24 Texteingabefelder ... 892
... 15.25 Bäume mit JTree-Objekten ... 901
... 15.26 Tabellen mit JTable ... 903
... 15.27 JRootPane und JLayeredPane ... 915
... 15.28 Dialoge ... 915
... 15.29 Das Java-Look&Feel ... 921
... 15.30 Swing-Beschriftungen einer anderen Sprache geben ... 923
... 15.31 Die Zwischenablage (Clipboard) 924
... 15.32 Undo durchführen ... 927
... 15.33 Ereignisverarbeitung auf unterster Ebene ... 929
... 15.34 AWT, Swing und die Threads ... 930
... 15.35 Selbst definierte Cursor ... 935
... 15.36 Mausrad-Unterstützung ... 937
... 15.37 Benutzerinteraktionen automatisieren ... 937
16 Netzwerkprogrammierung ... 941
... 16.1 Grundlegende Begriffe ... 943
... 16.2 URL-Verbindungen und URL-Objekte ... 944
... 16.3 Die Klasse URLConnection ... 952
... 16.4 Das Common Gateway Interface ... 959
... 16.5 Host- und IP-Adressen ... 963
... 16.6 NetworkInterface ... 966
... 16.7 IPv6 für Java mit Jipsy ... 968
... 16.8 Socket-Programmierung ... 968
... 16.9 Client/Server-Kommunikation ... 975
... 16.10 SLL-Verbindungen mit JSSE ... 979
... 16.11 Web-Protokolle mit NetComponents nutzen ... 980
... 16.12 E-Mail ... 980
... 16.13 Arbeitsweise eines Web-Servers ... 987
... 16.14 Datagram-Sockets ... 994
... 16.15 Internet Control Message Protocol (ICMP) 1004
... 16.16 Multicast-Kommunikation ... 1006
17 Servlets und Java Server Pages ... 1007
... 17.1 Dynamische Web-Seiten und Servlets ... 1009
... 17.2 Vom Client zum Server und wieder zurück ... 1012
... 17.3 Servlets und Java Server Pages entwickeln und testen ... 1015
... 17.4 Java Server Pages ... 1019
... 17.5 Skript-Elemente ... 1020
... 17.6 Web-Applikationen ... 1022
... 17.7 Implizite Objekte ... 1023
... 17.8 Entsprechende XML-Tags ... 1024
... 17.9 Was der Browser mit auf den Weg gibt - HttpServletRequest ... 1025
... 17.10 Formulardaten ... 1027
... 17.11 Das HttpServletResponse-Objekt ... 1029
... 17.12 JSP-Direktiven ... 1031
... 17.13 Aktionen ... 1033
... 17.14 Beans ... 1035
... 17.15 Kleine Kekse: die Klasse Cookies ... 1037
... 17.16 Sitzungsverfolgung (Session Tracking) 1043
... 17.17 Tag-Libraries ... 1048
... 17.18 Das erste Servlet compilieren und ausführen ... 1051
... 17.19 Der Lebenszyklus eines Servlets ... 1053
... 17.20 Das HttpServletResponse-Objekt ... 1058
... 17.21 Objekte und Dateien per POST verschicken ... 1063
... 17.22 Servlets und Sessions ... 1065
... 17.23 Weiterleiten und Einbinden von Servlet-Inhalten ... 1065
... 17.24 Inter-Servlet-Kommunikation ... 1067
... 17.25 Internationalisierung ... 1067
... 17.26 Tomcat: Spezielles ... 1069
... 17.27 Ein Servlet generiert WAP-Seiten für das Handy ... 1071
... 17.28 Text in HTML-konformen Text umwandeln ... 1076
18 Verteilte Programmierung mit RMI und SOAP ... 1079
... 18.1 Entfernte Methoden ... 1081
... 18.2 Nutzen von RMI bei Middleware-Lösungen ... 1085
... 18.3 Die Lösung für Java ist RMI ... 1085
... 18.4 Definition einer entfernten Schnittstelle ... 1086
... 18.5 Das entfernte Objekt ... 1087
... 18.6 Stellvertreterobjekte erzeugen ... 1090
... 18.7 Der Namensdienst (Registry) 1092
... 18.8 Der Server: entfernte Objekte beim Namensdienst anmelden ... 1092
... 18.9 Einen Client programmieren ... 1094
... 18.10 Aufräumen mit dem DGC ... 1095
... 18.11 Entfernte Objekte übergeben und laden ... 1096
... 18.12 Registry wird vom Server gestartet ... 1098
... 18.13 RMI über die Firewall ... 1099
... 18.14 RMI und CORBA ... 1100
... 18.15 UnicastRemoteObject, RemoteServer und RemoteObject ... 1100
... 18.16 Daily Soap ... 1102
... 18.17 Java-API für XML Messaging (JAXM) 1106
... 18.18 Java Message Service (JMS) 1106
19 Applets, Midlets und Sound ... 1109
... 19.1 Applets und Applikationen - wer darf was? 1111
... 19.2 Das erste Hallo-Applet ... 1111
... 19.3 Die Zyklen eines Applets ... 1113
... 19.4 Parameter an das Applet übergeben ... 1113
... 19.5 Fehler in Applets finden ... 1116
... 19.6 Browserabhängiges Verhalten ... 1116
... 19.7 Datenaustausch zwischen Applets ... 1119
... 19.8 Musik in einem Applet und in Applikationen ... 1121
... 19.9 Webstart ... 1124
... 19.10 Java 2 Micro Edition ... 1124
20 Datenbankmanagement mit JDBC ... 1129
... 20.1 Das relationale Modell ... 1131
... 20.2 JDBC: der Zugriff auf Datenbanken über Java ... 1132
... 20.3 Die Rolle von SQL ... 1132
... 20.4 Datenbanktreiber für den Zugriff ... 1136
... 20.5 Datenbanken und ihre Treiber ... 1137
... 20.6 Eine Beispielabfrage ... 1143
... 20.7 Mit Java an eine Datenbank andocken ... 1145
... 20.8 Datenbankabfragen ... 1151
... 20.9 Java und SQL-Datentypen ... 1154
... 20.10 Transaktionen ... 1157
... 20.11 Elemente einer Datenbank hinzufügen und aktualisieren ... 1158
... 20.12 Vorbereitete Anweisungen (Prepared Statements) 1159
... 20.13 Metadaten ... 1162
... 20.14 Die Ausnahmen bei JDBC ... 1167
... 20.15 Java Data Objects (JDO) 1168
... 20.16 XML-Datenbanken ... 1168
21 Reflection ... 1171
... 21.1 Einfach mal reinschauen ... 1173
... 21.2 Mit dem Class-Objekt etwas über Klassen erfahren ... 1173
... 21.3 Objekte manipulieren ... 1190
... 21.4 Methoden aufrufen ... 1196
... 21.5 Informationen und Identifizierung von Paketen ... 1200
22 Komponenten durch Bohnen ... 1203
... 22.1 Grundlagen der Komponententechnik ... 1205
... 22.2 Das JavaBeans Development Kit (BDK) 1207
... 22.3 Die kleinste Bohne der Welt ... 1210
... 22.4 Jar-Archive für Komponenten ... 1211
... 22.5 Worauf JavaBeans basieren ... 1212
... 22.6 Eigenschaften ... 1213
... 22.7 Ereignisse ... 1216
... 22.8 Weitere Eigenschaften ... 1219
... 22.9 Bean-Eigenschaften anpassen ... 1223
... 22.10 Property-Editoren ... 1224
... 22.11 BeanInfo ... 1225
... 22.12 Beliebte Fehler ... 1225
23 Java Native Interface (JNI) 1227
... 23.1 Java Native Interface und Invocation-API ... 1229
... 23.2 Die Schritte zur Einbindung einer C-Funktion in ein Java-Programm ... 1230
... 23.3 Erweiterung unseres Programms ... 1233
... 23.4 Erweiterte JNI-Eigenschaften ... 1234
24 Sicherheitskonzepte ... 1239
... 24.1 Der Sandkasten (Sandbox) 1241
... 24.2 Sicherheitsmanager (Security Manager) 1241
... 24.3 Dienstprogramme zur Signierung ... 1250
... 24.4 Digitale Unterschriften ... 1252
... 24.5 Verschlüsseln von Datenströmen ... 1257
25 Dienstprogramme für die Java-Umgebung ... 1259
... 25.1 Die Werkzeuge im Überblick ... 1261
... 25.2 Der Compiler javac ... 1261
... 25.3 Das Archivformat Jar ... 1264
... 25.4 Mit JavaDoc und Doclets dokumentieren ... 1268
... 25.5 Konvertierung von Java-Bytecode in ein Windows-Exe mit JET ... 1274
... 25.6 Manteln von Java-Klassen in ein Windows-Exe mit JexePack ... 1275
... 25.7 Decompiler ... 1275
... 25.8 Obfuscate Programm RetroGuard ... 1280
... 25.9 Sourcecode Beautifier ... 1280
... 25.10 Ant ... 1281
26 Style-Guide ... 1285
... 26.1 Programmierrichtlinien ... 1287
... 26.2 Allgemeine Richtlinien ... 1287
... 26.3 Quellcode kommentieren ... 1287
... 26.4 Bezeichnernamen ... 1291
... 26.5 Formatierung ... 1293
... 26.6 Ausdrücke ... 1297
... 26.7 Anweisungen ... 1298
... 26.8 Reihenfolge der Eigenschaften in Klassen ... 1301
... 26.9 Zugriffsrechte und Zugriffsmethoden ... 1302
... 26.10 Verweise ... 1303
A Literatur ... 1305
B Die Begleit-CD ... 1311
Index ... 1313
... 1.1 Der erste Kontakt ... 47
... 1.2 Historischer Hintergrund ... 47
... 1.3 Eigenschaften von Java ... 49
... 1.4 Java im Vergleich zu anderen Sprachen ... 55
... 1.5 Die Rolle von Java im Web ... 56
... 1.6 Aufkommen von Stand-alone-Applikationen ... 57
... 1.7 Entwicklungs- und Laufzeitumgebungen ... 57
... 1.8 Installationsanleitung für das Java 2 SDK unter Microsoft Windows ... 62
... 1.9 Das erste Programm compilieren und testen ... 64
... 1.10 Eclipse ... 67
2 Sprachbeschreibung ... 73
... 2.1 Anweisungen und Programme ... 75
... 2.2 Programme ... 77
... 2.3 Elemente einer Programmiersprache ... 83
... 2.4 Datentypen ... 87
... 2.5 Ausdrücke ... 99
... 2.6 Bedingte Anweisungen oder Fallunterscheidungen ... 110
... 2.7 Schleifen ... 117
... 2.8 Methoden einer Klasse ... 126
... 2.9 Weitere Operatoren ... 147
... 2.10 Einfache Benutzereingaben ... 156
3 Klassen und Objekte ... 159
... 3.1 Objektorientierte Programmierung ... 161
... 3.2 Klassen benutzen ... 162
... 3.3 Die API-Dokumentation ... 170
... 3.4 Mit Referenzen arbeiten ... 171
... 3.5 Arrays ... 175
4 Der Umgang mit Zeichenketten ... 191
... 4.1 Strings und deren Anwendung ... 193
... 4.2 Veränderbare Zeichenketten mit der Klasse StringBuffer ... 206
... 4.3 Vergleiche von Zeichenketten als String und StringBuffer ... 209
... 4.4 Zeichenkodierungen umwandeln ... 210
... 4.5 Sprachabhängiges Vergleichen mit der Collator-Klasse ... 211
... 4.6 Die Klasse StringTokenizer ... 214
... 4.7 StreamTokenizer ... 217
... 4.8 Der BreakIterator als Wort- und Satztrenner ... 220
... 4.9 Formatieren mit Format-Objekten ... 222
... 4.10 Reguläre Ausdrücke ... 228
5 Mathematisches ... 231
... 5.1 Arithmetik in Java ... 233
... 5.2 Die Funktionen der Math-Klasse ... 234
... 5.3 Mathe bitte strikt ... 239
... 5.4 Die Random-Klasse ... 240
... 5.5 Große Zahlen ... 242
... 5.6 Probleme mit Java und der Mathematik ... 247
... 5.7 Das Java-Matrixpaket Jama ... 248
6 Eigene Klassen schreiben ... 251
... 6.1 Eigene Klassen definieren ... 253
... 6.2 Assoziationen zwischen Objekten ... 258
... 6.3 Privatsphäre und Sichtbarkeit ... 259
... 6.4 Statische Methoden und Variablen ... 266
... 6.5 Objekte anlegen und zerstören ... 273
... 6.6 Veraltete (deprecated) Methoden/Konstruktoren ... 284
... 6.7 Vererbung ... 286
... 6.8 Methoden überschreiben ... 291
... 6.9 Die oberste aller Klassen: Object ... 296
... 6.10 Die Oberklasse gibt Funktionalität vor ... 301
... 6.11 Abstrakte Klassen ... 309
... 6.12 Schnittstellen ... 314
... 6.13 Innere Klassen ... 324
... 6.14 Gegenseitige Abhängigkeiten von Klassen ... 338
... 6.15 Pakete ... 339
7 Exceptions ... 341
... 7.1 Problembereiche einzäunen ... 343
... 7.2 Die Klassenhierarchie der Fehler ... 350
... 7.3 Werfen eigener Exceptions ... 354
... 7.4 Rückgabewerte bei ausgelösten Ausnahmen ... 357
... 7.5 Stack-Aufruf analysieren ... 358
... 7.6 Assertions ... 360
... 7.7 Sicherheitsfragen mit dem SecurityManager klären ... 361
8 Die Funktionsbibliothek ... 363
... 8.1 Die Java-Klassenphilosophie ... 365
... 8.2 Wrapper-Klassen ... 370
... 8.3 Ausführung von externen Programmen ... 381
... 8.4 Klassenlader (Class Loader) 386
... 8.5 Compilieren von Klassen ... 388
9 Threads und nebenläufige Programmierung ... 391
... 9.1 Prozesse und Threads ... 393
... 9.2 Threads erzeugen ... 396
... 9.3 Threads schlafen ... 401
... 9.4 Die Klassen Timer und TimerTask ... 404
... 9.5 Die Zustände eines Threads ... 405
... 9.6 Arbeit niederlegen und wieder aufnehmen ... 411
... 9.7 Priorität ... 412
... 9.8 Dämonen ... 413
... 9.9 Kooperative und nichtkooperative Threads ... 414
... 9.10 Synchronisation über kritische Abschnitte ... 415
... 9.11 Variablen mit volatile kennzeichnen ... 425
... 9.12 Synchronisation über Warten und Benachrichtigen ... 427
... 9.13 Aktive Threads in der Umgebung ... 436
... 9.14 Gruppen von Threads in einer Thread-Gruppe ... 436
... 9.15 Einen Abbruch der virtuellen Maschine erkennen ... 443
10 Raum und Zeit ... 445
... 10.1 Greenwich Mean Time (GMT) 447
... 10.2 Wichtige Datum-Klassen im Überblick ... 448
... 10.3 Zeitzonen und Sprachen der Länder ... 448
... 10.4 Sprachen der Länder ... 451
... 10.5 Einfache Übersetzung durch ResourceBundle-Objekte ... 455
... 10.6 Die Klasse Date ... 457
... 10.7 Calendar und GregorianCalendar ... 458
... 10.8 Formatieren der Datumsangaben ... 466
11 Datenstrukturen und Algorithmen ... 477
... 11.1 Mit einem Iterator durch die Daten wandern ... 479
... 11.2 Datenstrukturen und die Collection-API ... 483
... 11.3 Listen ... 488
... 11.4 Stack (Kellerspeicher, Stapel) 501
... 11.5 Die Klasse HashMap und assoziative Speicher ... 503
... 11.6 Die abstrakte Klasse Dictionary ... 511
... 11.7 Die Properties-Klasse ... 511
... 11.8 Algorithmen ... 518
... 11.9 Synchronisation der Datenstrukturen ... 526
... 11.10 Typsichere Datenstrukturen ... 527
... 11.11 Die abstrakten Basisklassen für Container ... 529
... 11.12 Die Klasse BitSet für Bitmengen ... 530
... 11.13 Ein Design-Pattern durch Beobachten von Änderungen ... 534
12 Datenströme und Dateien ... 539
... 12.1 Datei und Verzeichnis ... 541
... 12.2 Dateien mit wahlfreiem Zugriff ... 555
... 12.3 Übersicht über wichtige Stream- und WriterReader ... 559
... 12.4 Eingabe- und Ausgabe-Klassen: InputStream und OutputStream ... 561
... 12.5 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden ... 579
... 12.6 Die Unterklassen von Writer ... 580
... 12.7 Die Klassen um Reader ... 597
... 12.8 Schachteln von Eingabe-Streams ... 604
... 12.9 Kommunikation zwischen Threads mit Pipes ... 612
... 12.10 Datenkompression ... 616
... 12.11 Prüfsummen ... 629
... 12.12 Zugriff auf SMB-Server ... 633
... 12.13 Persistente Objekte und Serialisierung ... 634
... 12.14 Die Logging-API ... 654
13 Die eXtensible Markup Language (XML) 657
... 13.1 Auszeichnungssprachen ... 659
... 13.2 Eigenschaften von XML-Dokumenten ... 660
... 13.3 Die Java-APIs für XML ... 669
... 13.4 XML-Dateien mit JDOM verarbeiten ... 670
... 13.5 JAXP als Java-Schnittstelle zu XML ... 685
... 13.6 Serielle Verarbeitung von XML mit SAX ... 689
14 Grafikprogrammierung mit dem AWT ... 693
... 14.1 Das Abstract-Window-Toolkit ... 695
... 14.2 Fenster unter grafischen Oberflächen ... 696
... 14.3 Das Toolkit ... 700
... 14.4 Grundlegendes zum Zeichnen ... 701
... 14.5 Punkte, Linien und Rechtecke aller Art ... 707
... 14.6 Alles was rund ist ... 709
... 14.7 Polygone und Polylines ... 710
... 14.8 Zeichenketten schreiben ... 715
... 14.9 Clipping-Operationen ... 724
... 14.10 Farben ... 727
... 14.11 Bilder anzeigen und Grafiken verwalten ... 739
... 14.12 Programm-Icon setzen ... 752
... 14.13 Grafiken speichern ... 753
... 14.14 Von Produzenten, Konsumenten und Beobachtern ... 760
... 14.15 Filter ... 770
... 14.16 Alles wird bunt mit Farbmodellen ... 774
... 14.17 Drucken ... 782
... 14.18 Java 2D-API ... 786
... 14.19 Graphic Layers Framework ... 798
... 14.20 Grafikverarbeitung ohne grafische Oberfläche ... 800
15 Komponenten, Container und Ereignisse ... 803
... 15.1 Es tut sich was - Ereignisse beim AWT ... 805
... 15.2 Varianten, das Fenster zu schließen ... 810
... 15.3 Komponenten im AWT und in Swing ... 815
... 15.4 Das Swing-Fenster JFrame ... 821
... 15.5 Ein Informationstext über die Klasse JLabel ... 823
... 15.6 Die Klasse ImageIcon ... 826
... 15.7 Eine Schaltfläche (JButton) 830
... 15.8 Tooltips ... 838
... 15.9 Horizontale und vertikale Schieberegler ... 839
... 15.10 JSlider ... 844
... 15.11 Ein Auswahlmenü - Choice, JComboBox ... 845
... 15.12 Eines aus vielen - Kontrollfelder (JCheckBox) 850
... 15.13 Kontrollfeldgruppen, Optionsfelder und JRadioButton ... 852
... 15.14 Der Fortschrittsbalken JProgressBar ... 855
... 15.15 Rahmen (Borders) 856
... 15.16 Symbolleisten alias Toolbars ... 858
... 15.17 Menüs ... 860
... 15.18 Popup-Menüs ... 869
... 15.19 Alles Auslegungssache: die Layoutmanager ... 872
... 15.20 Der Inhalt einer Zeichenfläche: JPanel ... 885
... 15.21 Das Konzept des Model-View-Controllers ... 886
... 15.22 List-Boxen ... 888
... 15.23 JSpinner ... 890
... 15.24 Texteingabefelder ... 892
... 15.25 Bäume mit JTree-Objekten ... 901
... 15.26 Tabellen mit JTable ... 903
... 15.27 JRootPane und JLayeredPane ... 915
... 15.28 Dialoge ... 915
... 15.29 Das Java-Look&Feel ... 921
... 15.30 Swing-Beschriftungen einer anderen Sprache geben ... 923
... 15.31 Die Zwischenablage (Clipboard) 924
... 15.32 Undo durchführen ... 927
... 15.33 Ereignisverarbeitung auf unterster Ebene ... 929
... 15.34 AWT, Swing und die Threads ... 930
... 15.35 Selbst definierte Cursor ... 935
... 15.36 Mausrad-Unterstützung ... 937
... 15.37 Benutzerinteraktionen automatisieren ... 937
16 Netzwerkprogrammierung ... 941
... 16.1 Grundlegende Begriffe ... 943
... 16.2 URL-Verbindungen und URL-Objekte ... 944
... 16.3 Die Klasse URLConnection ... 952
... 16.4 Das Common Gateway Interface ... 959
... 16.5 Host- und IP-Adressen ... 963
... 16.6 NetworkInterface ... 966
... 16.7 IPv6 für Java mit Jipsy ... 968
... 16.8 Socket-Programmierung ... 968
... 16.9 Client/Server-Kommunikation ... 975
... 16.10 SLL-Verbindungen mit JSSE ... 979
... 16.11 Web-Protokolle mit NetComponents nutzen ... 980
... 16.12 E-Mail ... 980
... 16.13 Arbeitsweise eines Web-Servers ... 987
... 16.14 Datagram-Sockets ... 994
... 16.15 Internet Control Message Protocol (ICMP) 1004
... 16.16 Multicast-Kommunikation ... 1006
17 Servlets und Java Server Pages ... 1007
... 17.1 Dynamische Web-Seiten und Servlets ... 1009
... 17.2 Vom Client zum Server und wieder zurück ... 1012
... 17.3 Servlets und Java Server Pages entwickeln und testen ... 1015
... 17.4 Java Server Pages ... 1019
... 17.5 Skript-Elemente ... 1020
... 17.6 Web-Applikationen ... 1022
... 17.7 Implizite Objekte ... 1023
... 17.8 Entsprechende XML-Tags ... 1024
... 17.9 Was der Browser mit auf den Weg gibt - HttpServletRequest ... 1025
... 17.10 Formulardaten ... 1027
... 17.11 Das HttpServletResponse-Objekt ... 1029
... 17.12 JSP-Direktiven ... 1031
... 17.13 Aktionen ... 1033
... 17.14 Beans ... 1035
... 17.15 Kleine Kekse: die Klasse Cookies ... 1037
... 17.16 Sitzungsverfolgung (Session Tracking) 1043
... 17.17 Tag-Libraries ... 1048
... 17.18 Das erste Servlet compilieren und ausführen ... 1051
... 17.19 Der Lebenszyklus eines Servlets ... 1053
... 17.20 Das HttpServletResponse-Objekt ... 1058
... 17.21 Objekte und Dateien per POST verschicken ... 1063
... 17.22 Servlets und Sessions ... 1065
... 17.23 Weiterleiten und Einbinden von Servlet-Inhalten ... 1065
... 17.24 Inter-Servlet-Kommunikation ... 1067
... 17.25 Internationalisierung ... 1067
... 17.26 Tomcat: Spezielles ... 1069
... 17.27 Ein Servlet generiert WAP-Seiten für das Handy ... 1071
... 17.28 Text in HTML-konformen Text umwandeln ... 1076
18 Verteilte Programmierung mit RMI und SOAP ... 1079
... 18.1 Entfernte Methoden ... 1081
... 18.2 Nutzen von RMI bei Middleware-Lösungen ... 1085
... 18.3 Die Lösung für Java ist RMI ... 1085
... 18.4 Definition einer entfernten Schnittstelle ... 1086
... 18.5 Das entfernte Objekt ... 1087
... 18.6 Stellvertreterobjekte erzeugen ... 1090
... 18.7 Der Namensdienst (Registry) 1092
... 18.8 Der Server: entfernte Objekte beim Namensdienst anmelden ... 1092
... 18.9 Einen Client programmieren ... 1094
... 18.10 Aufräumen mit dem DGC ... 1095
... 18.11 Entfernte Objekte übergeben und laden ... 1096
... 18.12 Registry wird vom Server gestartet ... 1098
... 18.13 RMI über die Firewall ... 1099
... 18.14 RMI und CORBA ... 1100
... 18.15 UnicastRemoteObject, RemoteServer und RemoteObject ... 1100
... 18.16 Daily Soap ... 1102
... 18.17 Java-API für XML Messaging (JAXM) 1106
... 18.18 Java Message Service (JMS) 1106
19 Applets, Midlets und Sound ... 1109
... 19.1 Applets und Applikationen - wer darf was? 1111
... 19.2 Das erste Hallo-Applet ... 1111
... 19.3 Die Zyklen eines Applets ... 1113
... 19.4 Parameter an das Applet übergeben ... 1113
... 19.5 Fehler in Applets finden ... 1116
... 19.6 Browserabhängiges Verhalten ... 1116
... 19.7 Datenaustausch zwischen Applets ... 1119
... 19.8 Musik in einem Applet und in Applikationen ... 1121
... 19.9 Webstart ... 1124
... 19.10 Java 2 Micro Edition ... 1124
20 Datenbankmanagement mit JDBC ... 1129
... 20.1 Das relationale Modell ... 1131
... 20.2 JDBC: der Zugriff auf Datenbanken über Java ... 1132
... 20.3 Die Rolle von SQL ... 1132
... 20.4 Datenbanktreiber für den Zugriff ... 1136
... 20.5 Datenbanken und ihre Treiber ... 1137
... 20.6 Eine Beispielabfrage ... 1143
... 20.7 Mit Java an eine Datenbank andocken ... 1145
... 20.8 Datenbankabfragen ... 1151
... 20.9 Java und SQL-Datentypen ... 1154
... 20.10 Transaktionen ... 1157
... 20.11 Elemente einer Datenbank hinzufügen und aktualisieren ... 1158
... 20.12 Vorbereitete Anweisungen (Prepared Statements) 1159
... 20.13 Metadaten ... 1162
... 20.14 Die Ausnahmen bei JDBC ... 1167
... 20.15 Java Data Objects (JDO) 1168
... 20.16 XML-Datenbanken ... 1168
21 Reflection ... 1171
... 21.1 Einfach mal reinschauen ... 1173
... 21.2 Mit dem Class-Objekt etwas über Klassen erfahren ... 1173
... 21.3 Objekte manipulieren ... 1190
... 21.4 Methoden aufrufen ... 1196
... 21.5 Informationen und Identifizierung von Paketen ... 1200
22 Komponenten durch Bohnen ... 1203
... 22.1 Grundlagen der Komponententechnik ... 1205
... 22.2 Das JavaBeans Development Kit (BDK) 1207
... 22.3 Die kleinste Bohne der Welt ... 1210
... 22.4 Jar-Archive für Komponenten ... 1211
... 22.5 Worauf JavaBeans basieren ... 1212
... 22.6 Eigenschaften ... 1213
... 22.7 Ereignisse ... 1216
... 22.8 Weitere Eigenschaften ... 1219
... 22.9 Bean-Eigenschaften anpassen ... 1223
... 22.10 Property-Editoren ... 1224
... 22.11 BeanInfo ... 1225
... 22.12 Beliebte Fehler ... 1225
23 Java Native Interface (JNI) 1227
... 23.1 Java Native Interface und Invocation-API ... 1229
... 23.2 Die Schritte zur Einbindung einer C-Funktion in ein Java-Programm ... 1230
... 23.3 Erweiterung unseres Programms ... 1233
... 23.4 Erweiterte JNI-Eigenschaften ... 1234
24 Sicherheitskonzepte ... 1239
... 24.1 Der Sandkasten (Sandbox) 1241
... 24.2 Sicherheitsmanager (Security Manager) 1241
... 24.3 Dienstprogramme zur Signierung ... 1250
... 24.4 Digitale Unterschriften ... 1252
... 24.5 Verschlüsseln von Datenströmen ... 1257
25 Dienstprogramme für die Java-Umgebung ... 1259
... 25.1 Die Werkzeuge im Überblick ... 1261
... 25.2 Der Compiler javac ... 1261
... 25.3 Das Archivformat Jar ... 1264
... 25.4 Mit JavaDoc und Doclets dokumentieren ... 1268
... 25.5 Konvertierung von Java-Bytecode in ein Windows-Exe mit JET ... 1274
... 25.6 Manteln von Java-Klassen in ein Windows-Exe mit JexePack ... 1275
... 25.7 Decompiler ... 1275
... 25.8 Obfuscate Programm RetroGuard ... 1280
... 25.9 Sourcecode Beautifier ... 1280
... 25.10 Ant ... 1281
26 Style-Guide ... 1285
... 26.1 Programmierrichtlinien ... 1287
... 26.2 Allgemeine Richtlinien ... 1287
... 26.3 Quellcode kommentieren ... 1287
... 26.4 Bezeichnernamen ... 1291
... 26.5 Formatierung ... 1293
... 26.6 Ausdrücke ... 1297
... 26.7 Anweisungen ... 1298
... 26.8 Reihenfolge der Eigenschaften in Klassen ... 1301
... 26.9 Zugriffsrechte und Zugriffsmethoden ... 1302
... 26.10 Verweise ... 1303
A Literatur ... 1305
B Die Begleit-CD ... 1311
Index ... 1313
Hinter dem originellen Titel 'Java ist auch eine Insel' steht ein sehr praxisnahes Buch, das dem Leser eine Fülle von Beispielen zur Hand gibt. [...] Die aktuelle Auflage erklärt den Umgang mit dem Java SDK 1.4 von Sun, sodass man schnell zum ersten Erfolgserlebnis gelangt. Das sehr umfangreiche Werk geht ausgesprochen detailliert auf alle Belange von Java ein. [...] (c't, 14/2003)