Java ist auch eine Insel, m. CD-ROM
Programmieren mit der Java Standard Edition Version 5. Das umfassende Handbuch
Java ist auch eine Insel, m. CD-ROM
Programmieren mit der Java Standard Edition Version 5. Das umfassende Handbuch
- Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Diese 5. Auflage des Java-Kultbuches wurde gründlich überarbeitet, aktualisiert und erweitert. Besonders Einsteiger mit Programmierkenntnissen und Industrieprogrammierer profitieren von diesem umfassenden Werk. Tipps und Tricks aus den Java-FAQs werden regelmäßig mit in die Insel aufgenommen, um wirklich das abzudecken, was Sie im Alltag brauchen. Die Einführung in die Sprache Java ist anschaulich und immer praxisorientiert. Schnell geht es weiter mit fortgeschrittenen Themen wie Threads, Swing, Netzwerkprogrammierung, Java Beans, RMI, XML und Java, Servlets und Java Server Pages, JDBC und…mehr
Sind Sie reif für die Insel?
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, Arbeiten mit Eclipse 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
- Verlag: GALILEO PRESS
- ISBN-13: 9783898423656
- ISBN-10: 3898423654
- Artikelnr.: 15066634
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
- Verlag: GALILEO PRESS
- ISBN-13: 9783898423656
- ISBN-10: 3898423654
- Artikelnr.: 15066634
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
... 1.1 Der erste Kontakt ... 51
... 1.2 Historischer Hintergrund ... 51
... 1.3 Eigenschaften von Java ... 53
... 1.4 Java im Vergleich zu anderen Sprachen ... 59
... 1.6 Entwicklungs- und Laufzeitumgebungen ... 61
... 1.7 Installationsanleitung für das Java 2 65
... 1.8 Das erste Programm compilieren und testen ... 69
... 1.9 Eclipse ... 71
2 Sprachbeschreibung ... 79
... 2.1 Anweisungen und Programme ... 81
... 2.2 Elemente der Programmiersprache Java ... 83
... 2.3 Datentypen ... 95
... 2.4 Ausdrücke, Operanden und Operatoren ... 110
... 2.5 Bedingte Anweisungen oder Fallunterscheidungen ... 123
... 2.6 Schleifen ... 131
... 2.7 Methoden einer Klasse ... 142
... 2.8 Dokumentationskommentare ... 163
... 2.9 Einfache Benutzereingaben ... 178
3 Klassen und Objekte ... 181
... 3.1 Objektorientierte Programmierung ... 183
... 3.2 Klassen benutzen ... 184
... 3.3 Import und Pakete ... 192
... 3.4 Die API-Dokumentation ... 193
... 3.5 Mit Referenzen arbeiten ... 194
... 3.6 Arrays ... 200
... 3.7 Der Einstiegspunkt für das Laufzeitsystem main() ... 215
... 3.8 Eigene Pakete schnüren ... 218
4 Der Umgang mit Zeichenketten ... 223
... 4.1 Strings und deren Anwendung ... 225
... 4.2 Veränderbare Zeichenketten mit StringBuffer/StringBuilder ... 237
... 4.3 Vergleiche von Zeichenketten ... 241
... 4.4 Zeichenkodierungen ... 246
... 4.5 Reguläre Ausdrücke ... 248
... 4.6 Zerlegen von Zeichenketten ... 249
... 4.7 Formatieren von Ausgaben ... 256
5 Mathematisches ... 265
... 5.1 Arithmetik in Java ... 267
... 5.2 Die Funktionen der Math-Klasse ... 269
... 5.3 Mathe bitte strikt ... 274
... 5.4 Die Random-Klasse ... 275
... 5.5 Große Zahlen ... 276
... 5.6 Rechnen mit Einheiten: Java Units Specification ... 282
6 Eigene Klassen schreiben ... 285
... 6.1 Eigene Klassen definieren ... 287
... 6.2 Assoziationen zwischen Objekten ... 293
... 6.3 Privatsphäre und Sichtbarkeit ... 294
... 6.4 Statische Methoden und Attribute ... 301
... 6.5 Konstanten und Aufzählungen ... 306
... 6.6 Objekte anlegen und zerstören ... 311
... 6.7 Vererbung ... 327
... 6.8 Die oberste aller Klassen: Object ... 341
... 6.9 Die Oberklasse gibt Funktionalität vor ... 351
... 6.10 Abstrakte Klassen ... 358
... 6.11 Schnittstellen ... 364
... 6.12 Innere Klassen ... 378
... 6.13 Generische Datentypen ... 392
... 6.14 Die Spezial-Oberklasse Enum ... 399
... 6.15 Gegenseitige Abhängigkeiten von Klassen ... 403
... 6.16 Veraltete (deprecated) Methoden/Konstruktoren ... 403
7 Exceptions ... 407
... 7.1 Problembereiche einzäunen ... 409
... 7.2 Die Klassenhierarchie der Fehler ... 416
... 7.3 Werfen eigener Exceptions ... 420
... 7.4 Rückgabewerte bei ausgelösten Ausnahmen ... 424
... 7.5 Stack-Aufruf analysieren ... 425
... 7.6 Assertions ... 426
8 Die Funktionsbibliothek ... 429
... 8.1 Die Java-Klassenphilosophie ... 431
... 8.2 Wrapper-Klassen ... 437
... 8.3 Benutzereinstellungen ... 450
... 8.4 Systemeigenschaften der Java-Umgebung ... 453
... 8.5 Ausführung von externen Programmen ... 456
... 8.6 Klassenlader (Class Loader) ... 462
... 8.7 Zeitmessung und Profiling ... 467
9 Threads und nebenläufige Programmierung ... 469
... 9.1 Prozesse und Threads ... 471
... 9.2 Threads erzeugen ... 474
... 9.3 Die Zustände eines Threads ... 480
... 9.4 Arbeit niederlegen und wieder aufnehmen ... 489
... 9.5 Priorität ... 489
... 9.6 Dämonen ... 491
... 9.7 Kooperative und nichtkooperative Threads ... 492
... 9.8 Synchronisation über kritische Abschnitte ... 493
... 9.9 Synchronisation über Warten und Benachrichtigen ... 503
... 9.10 Atomares und frische Werte mit volatile ... 512
... 9.11 Aktive Threads in der Umgebung ... 514
... 9.12 Gruppen von Threads in einer Thread-Gruppe ... 514
... 9.13 Die Klassen Timer und TimerTask ... 522
... 9.14 Einen Abbruch der virtuellen Maschine erkennen ... 523
10 Raum und Zeit ... 525
... 10.1 Greenwich Mean Time (GMT) ... 527
... 10.2 Wichtige Datum-Klassen im Überblick ... 528
... 10.3 Zeitzonen und Sprachen der Länder ... 528
... 10.4 Sprachen der Länder ... 532
... 10.5 Einfache Übersetzung durch ResourceBundle-Objekte ... 536
... 10.6 Die Klasse Date ... 537
... 10.7 Calendar und GregorianCalendar ... 539
... 10.8 Formatieren der Datumsangaben ... 546
11 Datenstrukturen und Algorithmen ... 557
... 11.1 Mit einem Iterator durch die Daten wandern ... 559
... 11.2 Datenstrukturen und die Collection-API ... 561
... 11.3 Listen ... 569
... 11.4 Stack (Kellerspeicher, Stapel) ... 581
... 11.5 Queues (Schlangen) ... 582
... 11.6 Assoziative Speicher und die Klasse HashMap ... 584
... 11.7 Die Properties-Klasse ... 592
... 11.8 Mengen (Sets) ... 597
... 11.9 Algorithmen in Collections ... 600
... 11.10 Synchronisation der Datenstrukturen ... 609
... 11.11 Die abstrakten Basisklassen für Container ... 610
... 11.12 Die Klasse BitSet für Bitmengen ... 611
... 11.13 Ein Design-Pattern durch Beobachten von Änderungen ... 614
12 Datenströme und Dateien ... 621
... 12.1 Datei und Verzeichnis ... 623
... 12.2 Dateien mit wahlfreiem Zugriff ... 638
... 12.3 Stream-Klassen und Reader/Writer ... 642
... 12.4 Binäre Ein-/Ausgabe-Klassen InputStream und OutputStream ... 644
... 12.5 Daten filtern durch FilterInputStream und FilterOutputStream ... 652
... 12.6 Besondere OutputStream- und InputStream-Klassen ... 660
... 12.7 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden ... 664
... 12.8 Die Unterklassen von Writer ... 664
... 12.9 Die Klassen um Reader ... 682
... 12.10 Die Filter für Zeichenströme ... 688
... 12.11 Kommunikation zwischen Threads mit Pipes ... 696
... 12.12 Datenkompression ... 700
... 12.13 Prüfsummen ... 712
... 12.14 Persistente Objekte und Serialisierung ... 716
... 12.15 Zugriff auf SMB-Server ... 732
... 12.16 Tokenizer ... 733
... 12.17 Die Logging-API ... 737
13 Die eXtensible Markup Language (XML) ... 741
... 13.1 Auszeichnungssprachen ... 743
... 13.2 Eigenschaften von XML-Dokumenten ... 744
... 13.3 Die Java-APIs für XML ... 753
... 13.4 XML-Dateien mit JDOM verarbeiten ... 754
... 13.5 JAXP als Java-Schnittstelle zu XML ... 771
... 13.6 Serielle Verarbeitung von XML mit SAX ... 775
... 13.7 HTML-Dokumenten mit JTidy und cyberneko einlesen ... 778
14 Grafikprogrammierung mit dem AWT ... 779
... 14.1 Das Abstract-Window-Toolkit ... 781
... 14.2 Das Toolkit ... 782
... 14.3 Fenster unter grafischen Oberflächen ... 783
... 14.4 Grundlegendes zum Zeichnen ... 788
... 14.5 Einfache Zeichenfunktionen ... 794
... 14.6 Zeichenketten schreiben ... 800
... 14.7 Clipping-Operationen ... 809
... 14.8 Farben ... 812
... 14.9 Bilder anzeigen und Grafiken verwalten ... 822
... 14.10 Java 2D-API ... 844
... 14.11 Von Produzenten, Konsumenten und Beobachtern ... 858
... 14.12 Filter ... 868
... 14.13 Drucken ... 871
... 14.14 Graphic Layers Framework ... 876
... 14.15 Grafikverarbeitung ohne grafische Oberfläche ... 876
15 Komponenten, Container und Ereignisse ... 879
... 15.1 Es tut sich was - Ereignisse beim AWT ... 881
... 15.2 Varianten, das Fenster zu schließen ... 886
... 15.3 Komponenten im AWT und in Swing ... 892
... 15.4 Das Swing-Fenster JFrame ... 900
... 15.5 Informationstext über die Klasse JLabel ... 902
... 15.6 Die Klasse ImageIcon ... 905
... 15.7 Eine Schaltfläche (JButton) ... 909
... 15.8 Tooltips ... 917
... 15.9 Der Container JPanel ... 918
... 15.10 Alles Auslegungssache: die Layoutmanager ... 918
... 15.11 Horizontale und vertikale Schieberegler ... 932
... 15.12 JSlider ... 936
... 15.13 Ein Auswahlmenü - Choice, JComboBox ... 937
... 15.14 Eines aus vielen - Kontrollfelder (JCheckBox) ... 943
... 15.15 Kontrollfeldgruppen, Optionsfelder und JRadioButton ... 945
... 15.16 Der Fortschrittsbalken JProgressBar ... 947
... 15.17 Rahmen (Borders) ... 949
... 15.18 Symbolleisten alias Toolbars ... 951
... 15.19 Menüs ... 953
... 15.20 Das Konzept des Model-View-Controllers ... 965
... 15.21 List-Boxen ... 967
... 15.22 JSpinner ... 969
... 15.23 Texteingabefelder ... 971
... 15.24 Bäume mit JTree-Objekten ... 980
... 15.25 Tabellen mit JTable ... 982
... 15.26 JRootPane, JLayeredPane und JDesktopPane ... 996
... 15.27 Flexibles Java-Look&Feel ... 1004
... 15.28 Swing-Beschriftungen einer anderen Sprache geben ... 1006
... 15.29 Die Zwischenablage (Clipboard) ... 1007
... 15.30 Undo durchführen ... 1010
... 15.31 Ereignisverarbeitung auf unterster Ebene ... 1012
... 15.32 AWT, Swing und die Threads ... 1013
... 15.33 Selbst definierte Cursor ... 1018
... 15.34 Mausrad-Unterstützung ... 1020
... 15.35 Benutzerinteraktionen automatisieren ... 1020
... 15.36 Alternativen zu AWT und Swing ... 1024
16 Netzwerkprogrammierung ... 1027
... 16.1 Grundlegende Begriffe ... 1029
... 16.2 URL-Verbindungen und URL-Objekte ... 1030
... 16.3 Die Klasse URLConnection ... 1038
... 16.4 Das Common Gateway Interface ... 1045
... 16.5 Host- und IP-Adressen ... 1050
... 16.6 NetworkInterface ... 1053
... 16.7 Mit dem Socket zum Server ... 1055
... 16.8 Client/Server-Kommunikation ... 1064
... 16.9 SLL-Verbindungen mit JSSE ... 1068
... 16.10 Apache Jakarta Commons HttpClient und Net ... 1069
... 16.11 E-Mail ... 1070
... 16.12 Arbeitsweise eines Web-Servers ... 1078
... 16.13 Datagram-Sockets ... 1085
... 16.14 Tiefer liegende Netzwerkeigenschaften ... 1095
... 16.15 Multicast-Kommunikation ... 1096
17 Servlets und Java Server Pages ... 1099
... 17.1 Dynamische Web-Seiten und Servlets ... 1101
... 17.2 Vom Client zum Server und wieder zurück ... 1104
... 17.3 Servlets und Java Server Pages entwickeln und testen ... 1107
... 17.4 Java Server Pages in Tomcat und Eclipse ... 1109
... 17.5 Skript-Elemente ... 1114
... 17.6 Implizite Objekte ... 1117
... 17.7 Was der Browser mit auf den Weg gibt - HttpServletRequest ... 1118
... 17.8 Formulardaten ... 1120
... 17.9 Das HttpServletResponse-Objekt ... 1123
... 17.10 JSP-Direktiven ... 1124
... 17.11 Aktionen ... 1128
... 17.12 Beans ... 1129
... 17.13 Kleine Kekse: die Klasse Cookies ... 1131
... 17.14 Sitzungsverfolgung (Session Tracking) ... 1138
... 17.15 Tag-Libraries ... 1143
... 17.16 Servlets ... 1145
... 17.17 Der Lebenszyklus eines Servlets ... 1148
... 17.18 Das HttpServletResponse-Objekt ... 1153
... 17.19 Objekte und Dateien per POST verschicken ... 1158
... 17.20 Servlets und Sessions ... 1159
... 17.21 Weiterleiten und Einbinden von Servlet-Inhalten ... 1160
... 17.22 Inter-Servlet-Kommunikation ... 1161
... 17.23 Internationalisierung ... 1162
... 17.24 Tomcat: Spezielles ... 1164
18 Verteilte Programmierung mit RMI und SOAP ... 1167
... 18.1 Entfernte Methoden ... 1169
... 18.2 Nutzen von RMI bei Middleware-Lösungen ... 1172
... 18.3 Die Lösung für Java ist RMI ... 1173
... 18.4 Definition einer entfernten Schnittstelle ... 1174
... 18.5 Das entfernte Objekt ... 1175
... 18.6 Stellvertreterobjekte erzeugen ... 1178
... 18.7 Der Namensdienst (Registry) ... 1179
... 18.8 Der Server ... 1180
... 18.9 Einen Client programmieren ... 1182
... 18.10 Aufräumen mit dem DGC ... 1183
... 18.11 Entfernte Objekte übergeben und laden ... 1184
... 18.12 Registry wird vom Server gestartet ... 1186
... 18.13 RMI über die Firewall ... 1187
... 18.14 RMI und CORBA ... 1188
... 18.15 UnicastRemoteObject, RemoteServer und RemoteObject ... 1188
... 18.16 Daily Soap ... 1189
... 18.17 Java-API für XML Messaging (JAXM) ... 1193
... 18.18 Java Message Service (JMS) ... 1194
19 Applets, Midlets und Sound ... 1197
... 19.1 Applets und Applikationen - wer darf was? ... 1199
... 19.2 Das erste Hallo-Applet ... 1199
... 19.3 Die Zyklen eines Applets ... 1200
... 19.4 Parameter an das Applet übergeben ... 1200
... 19.5 Fehler in Applets finden ... 1204
... 19.6 Browserabhängiges Verhalten ... 1204
... 19.7 Datenaustausch zwischen Applets ... 1206
... 19.8 Musik in einem Applet und in Applikationen ... 1209
... 19.9 Webstart ... 1212
... 19.10 Java 2 Micro Edition ... 1212
20 Datenbankmanagement mit JDBC ... 1217
... 20.1 Das relationale Modell ... 1219
... 20.2 JDBC: der Zugriff auf Datenbanken über Java ... 1220
... 20.3 Die Rolle von SQL ... 1220
... 20.4 Datenbanktreiber für den Zugriff ... 1225
... 20.5 Datenbanken und ihre Treiber ... 1226
... 20.6 Eine Beispielabfrage ... 1232
... 20.7 Mit Java an eine Datenbank andocken ... 1233
... 20.8 Datenbankabfragen ... 1239
... 20.9 Die Ausnahmen bei JDBC ... 1246
... 20.10 Transaktionen ... 1246
... 20.11 Elemente einer Datenbank hinzufügen und aktualisieren ... 1247
... 20.12 Vorbereitete Anweisungen (Prepared Statements) ... 1249
... 20.13 Die LOBs (Large Objects) ... 1251
... 20.14 Die SQL3-Datentypen ARRAY, STRUCT und REF ... 1252
... 20.15 Metadaten ... 1252
... 20.16 DataSource ... 1258
... 20.17 Java Data Objects (JDO) ... 1259
... 20.18 XML-Datenbanken ... 1260
21 Reflection und Annotationen ... 1263
... 21.1 MetaData ... 1265
... 21.2 Mit dem Class-Objekt etwas über Klassen erfahren ... 1267
... 21.3 Annotationen ... 1283
... 21.4 Objekte manipulieren ... 1284
... 21.5 Methoden aufrufen ... 1292
... 21.6 Informationen und Identifizierung von Paketen ... 1295
22 Komponenten durch Bohnen ... 1299
... 22.1 Grundlagen der Komponententechnik ... 1301
... 22.2 Das JavaBeans Development Kit (BDK) ... 1303
... 22.3 Die kleinste Bohne der Welt ... 1306
... 22.4 Jar-Archive für Komponenten ... 1306
... 22.5 Worauf JavaBeans basieren ... 1308
... 22.6 Eigenschaften ... 1309
... 22.7 Ereignisse ... 1312
... 22.8 Weitere Eigenschaften ... 1315
... 22.9 Bean-Eigenschaften anpassen ... 1319
... 22.10 Property-Editoren ... 1320
... 22.11 BeanInfo ... 1320
... 22.12 Beliebte Fehler ... 1321
23 Java Native Interface (JNI) ... 1323
... 23.1 Java Native Interface und Invocation-API ... 1325
... 23.2 Die Schritte zur Einbindung einer C-Funktion in ein Java-Programm ... 1326
... 23.3 Erweiterung unseres Programms ... 1329
... 23.4 Erweiterte JNI-Eigenschaften ... 1330
24 Sicherheitskonzepte ... 1335
... 24.1 Der Sandkasten (Sandbox) ... 1337
... 24.2 Sicherheitsmanager (Security Manager) ... 1337
... 24.3 Dienstprogramme zur Signierung ... 1346
... 24.4 Digitale Unterschriften ... 1347
... 24.5 Verschlüsseln von Daten(-strömen) ... 1352
25 Dienstprogramme für die Java-Umgebung ... 1357
... 25.1 Die Werkzeuge im Überblick ... 1359
... 25.2 Der Compiler javac ... 1359
... 25.3 Das Archivformat Jar ... 1362
... 25.4 Nativer Compiler JET ... 1367
... 25.5 Einpacken von Java-Programmen in ein exe mit JSmooth ... 1367
... 25.6 Decompiler ... 1367
... 25.7 Obfuscate Programm RetroGuard ... 1372
... 25.8 Sourcecode Beautifier ... 1373
... 25.9 Ant ... 1374
26 Style-Guide ... 1379
... 26.1 Programmierrichtlinien ... 1381
... 26.2 Allgemeine Richtlinien ... 1381
... 26.3 Quellcode kommentieren ... 1382
... 26.4 Bezeichnernamen ... 1385
... 26.5 Formatierung ... 1387
... 26.6 Ausdrücke ... 1389
... 26.7 Reihenfolge der Eigenschaften in Klassen ... 1390
... 26.8 Zugriffsrechte und Zugriffsmethoden ... 1391
... 26.9 Verweise ... 1392A Die Begleit-CD ... 1393
... 1.1 Der erste Kontakt ... 51
... 1.2 Historischer Hintergrund ... 51
... 1.3 Eigenschaften von Java ... 53
... 1.4 Java im Vergleich zu anderen Sprachen ... 59
... 1.6 Entwicklungs- und Laufzeitumgebungen ... 61
... 1.7 Installationsanleitung für das Java 2 65
... 1.8 Das erste Programm compilieren und testen ... 69
... 1.9 Eclipse ... 71
2 Sprachbeschreibung ... 79
... 2.1 Anweisungen und Programme ... 81
... 2.2 Elemente der Programmiersprache Java ... 83
... 2.3 Datentypen ... 95
... 2.4 Ausdrücke, Operanden und Operatoren ... 110
... 2.5 Bedingte Anweisungen oder Fallunterscheidungen ... 123
... 2.6 Schleifen ... 131
... 2.7 Methoden einer Klasse ... 142
... 2.8 Dokumentationskommentare ... 163
... 2.9 Einfache Benutzereingaben ... 178
3 Klassen und Objekte ... 181
... 3.1 Objektorientierte Programmierung ... 183
... 3.2 Klassen benutzen ... 184
... 3.3 Import und Pakete ... 192
... 3.4 Die API-Dokumentation ... 193
... 3.5 Mit Referenzen arbeiten ... 194
... 3.6 Arrays ... 200
... 3.7 Der Einstiegspunkt für das Laufzeitsystem main() ... 215
... 3.8 Eigene Pakete schnüren ... 218
4 Der Umgang mit Zeichenketten ... 223
... 4.1 Strings und deren Anwendung ... 225
... 4.2 Veränderbare Zeichenketten mit StringBuffer/StringBuilder ... 237
... 4.3 Vergleiche von Zeichenketten ... 241
... 4.4 Zeichenkodierungen ... 246
... 4.5 Reguläre Ausdrücke ... 248
... 4.6 Zerlegen von Zeichenketten ... 249
... 4.7 Formatieren von Ausgaben ... 256
5 Mathematisches ... 265
... 5.1 Arithmetik in Java ... 267
... 5.2 Die Funktionen der Math-Klasse ... 269
... 5.3 Mathe bitte strikt ... 274
... 5.4 Die Random-Klasse ... 275
... 5.5 Große Zahlen ... 276
... 5.6 Rechnen mit Einheiten: Java Units Specification ... 282
6 Eigene Klassen schreiben ... 285
... 6.1 Eigene Klassen definieren ... 287
... 6.2 Assoziationen zwischen Objekten ... 293
... 6.3 Privatsphäre und Sichtbarkeit ... 294
... 6.4 Statische Methoden und Attribute ... 301
... 6.5 Konstanten und Aufzählungen ... 306
... 6.6 Objekte anlegen und zerstören ... 311
... 6.7 Vererbung ... 327
... 6.8 Die oberste aller Klassen: Object ... 341
... 6.9 Die Oberklasse gibt Funktionalität vor ... 351
... 6.10 Abstrakte Klassen ... 358
... 6.11 Schnittstellen ... 364
... 6.12 Innere Klassen ... 378
... 6.13 Generische Datentypen ... 392
... 6.14 Die Spezial-Oberklasse Enum ... 399
... 6.15 Gegenseitige Abhängigkeiten von Klassen ... 403
... 6.16 Veraltete (deprecated) Methoden/Konstruktoren ... 403
7 Exceptions ... 407
... 7.1 Problembereiche einzäunen ... 409
... 7.2 Die Klassenhierarchie der Fehler ... 416
... 7.3 Werfen eigener Exceptions ... 420
... 7.4 Rückgabewerte bei ausgelösten Ausnahmen ... 424
... 7.5 Stack-Aufruf analysieren ... 425
... 7.6 Assertions ... 426
8 Die Funktionsbibliothek ... 429
... 8.1 Die Java-Klassenphilosophie ... 431
... 8.2 Wrapper-Klassen ... 437
... 8.3 Benutzereinstellungen ... 450
... 8.4 Systemeigenschaften der Java-Umgebung ... 453
... 8.5 Ausführung von externen Programmen ... 456
... 8.6 Klassenlader (Class Loader) ... 462
... 8.7 Zeitmessung und Profiling ... 467
9 Threads und nebenläufige Programmierung ... 469
... 9.1 Prozesse und Threads ... 471
... 9.2 Threads erzeugen ... 474
... 9.3 Die Zustände eines Threads ... 480
... 9.4 Arbeit niederlegen und wieder aufnehmen ... 489
... 9.5 Priorität ... 489
... 9.6 Dämonen ... 491
... 9.7 Kooperative und nichtkooperative Threads ... 492
... 9.8 Synchronisation über kritische Abschnitte ... 493
... 9.9 Synchronisation über Warten und Benachrichtigen ... 503
... 9.10 Atomares und frische Werte mit volatile ... 512
... 9.11 Aktive Threads in der Umgebung ... 514
... 9.12 Gruppen von Threads in einer Thread-Gruppe ... 514
... 9.13 Die Klassen Timer und TimerTask ... 522
... 9.14 Einen Abbruch der virtuellen Maschine erkennen ... 523
10 Raum und Zeit ... 525
... 10.1 Greenwich Mean Time (GMT) ... 527
... 10.2 Wichtige Datum-Klassen im Überblick ... 528
... 10.3 Zeitzonen und Sprachen der Länder ... 528
... 10.4 Sprachen der Länder ... 532
... 10.5 Einfache Übersetzung durch ResourceBundle-Objekte ... 536
... 10.6 Die Klasse Date ... 537
... 10.7 Calendar und GregorianCalendar ... 539
... 10.8 Formatieren der Datumsangaben ... 546
11 Datenstrukturen und Algorithmen ... 557
... 11.1 Mit einem Iterator durch die Daten wandern ... 559
... 11.2 Datenstrukturen und die Collection-API ... 561
... 11.3 Listen ... 569
... 11.4 Stack (Kellerspeicher, Stapel) ... 581
... 11.5 Queues (Schlangen) ... 582
... 11.6 Assoziative Speicher und die Klasse HashMap ... 584
... 11.7 Die Properties-Klasse ... 592
... 11.8 Mengen (Sets) ... 597
... 11.9 Algorithmen in Collections ... 600
... 11.10 Synchronisation der Datenstrukturen ... 609
... 11.11 Die abstrakten Basisklassen für Container ... 610
... 11.12 Die Klasse BitSet für Bitmengen ... 611
... 11.13 Ein Design-Pattern durch Beobachten von Änderungen ... 614
12 Datenströme und Dateien ... 621
... 12.1 Datei und Verzeichnis ... 623
... 12.2 Dateien mit wahlfreiem Zugriff ... 638
... 12.3 Stream-Klassen und Reader/Writer ... 642
... 12.4 Binäre Ein-/Ausgabe-Klassen InputStream und OutputStream ... 644
... 12.5 Daten filtern durch FilterInputStream und FilterOutputStream ... 652
... 12.6 Besondere OutputStream- und InputStream-Klassen ... 660
... 12.7 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden ... 664
... 12.8 Die Unterklassen von Writer ... 664
... 12.9 Die Klassen um Reader ... 682
... 12.10 Die Filter für Zeichenströme ... 688
... 12.11 Kommunikation zwischen Threads mit Pipes ... 696
... 12.12 Datenkompression ... 700
... 12.13 Prüfsummen ... 712
... 12.14 Persistente Objekte und Serialisierung ... 716
... 12.15 Zugriff auf SMB-Server ... 732
... 12.16 Tokenizer ... 733
... 12.17 Die Logging-API ... 737
13 Die eXtensible Markup Language (XML) ... 741
... 13.1 Auszeichnungssprachen ... 743
... 13.2 Eigenschaften von XML-Dokumenten ... 744
... 13.3 Die Java-APIs für XML ... 753
... 13.4 XML-Dateien mit JDOM verarbeiten ... 754
... 13.5 JAXP als Java-Schnittstelle zu XML ... 771
... 13.6 Serielle Verarbeitung von XML mit SAX ... 775
... 13.7 HTML-Dokumenten mit JTidy und cyberneko einlesen ... 778
14 Grafikprogrammierung mit dem AWT ... 779
... 14.1 Das Abstract-Window-Toolkit ... 781
... 14.2 Das Toolkit ... 782
... 14.3 Fenster unter grafischen Oberflächen ... 783
... 14.4 Grundlegendes zum Zeichnen ... 788
... 14.5 Einfache Zeichenfunktionen ... 794
... 14.6 Zeichenketten schreiben ... 800
... 14.7 Clipping-Operationen ... 809
... 14.8 Farben ... 812
... 14.9 Bilder anzeigen und Grafiken verwalten ... 822
... 14.10 Java 2D-API ... 844
... 14.11 Von Produzenten, Konsumenten und Beobachtern ... 858
... 14.12 Filter ... 868
... 14.13 Drucken ... 871
... 14.14 Graphic Layers Framework ... 876
... 14.15 Grafikverarbeitung ohne grafische Oberfläche ... 876
15 Komponenten, Container und Ereignisse ... 879
... 15.1 Es tut sich was - Ereignisse beim AWT ... 881
... 15.2 Varianten, das Fenster zu schließen ... 886
... 15.3 Komponenten im AWT und in Swing ... 892
... 15.4 Das Swing-Fenster JFrame ... 900
... 15.5 Informationstext über die Klasse JLabel ... 902
... 15.6 Die Klasse ImageIcon ... 905
... 15.7 Eine Schaltfläche (JButton) ... 909
... 15.8 Tooltips ... 917
... 15.9 Der Container JPanel ... 918
... 15.10 Alles Auslegungssache: die Layoutmanager ... 918
... 15.11 Horizontale und vertikale Schieberegler ... 932
... 15.12 JSlider ... 936
... 15.13 Ein Auswahlmenü - Choice, JComboBox ... 937
... 15.14 Eines aus vielen - Kontrollfelder (JCheckBox) ... 943
... 15.15 Kontrollfeldgruppen, Optionsfelder und JRadioButton ... 945
... 15.16 Der Fortschrittsbalken JProgressBar ... 947
... 15.17 Rahmen (Borders) ... 949
... 15.18 Symbolleisten alias Toolbars ... 951
... 15.19 Menüs ... 953
... 15.20 Das Konzept des Model-View-Controllers ... 965
... 15.21 List-Boxen ... 967
... 15.22 JSpinner ... 969
... 15.23 Texteingabefelder ... 971
... 15.24 Bäume mit JTree-Objekten ... 980
... 15.25 Tabellen mit JTable ... 982
... 15.26 JRootPane, JLayeredPane und JDesktopPane ... 996
... 15.27 Flexibles Java-Look&Feel ... 1004
... 15.28 Swing-Beschriftungen einer anderen Sprache geben ... 1006
... 15.29 Die Zwischenablage (Clipboard) ... 1007
... 15.30 Undo durchführen ... 1010
... 15.31 Ereignisverarbeitung auf unterster Ebene ... 1012
... 15.32 AWT, Swing und die Threads ... 1013
... 15.33 Selbst definierte Cursor ... 1018
... 15.34 Mausrad-Unterstützung ... 1020
... 15.35 Benutzerinteraktionen automatisieren ... 1020
... 15.36 Alternativen zu AWT und Swing ... 1024
16 Netzwerkprogrammierung ... 1027
... 16.1 Grundlegende Begriffe ... 1029
... 16.2 URL-Verbindungen und URL-Objekte ... 1030
... 16.3 Die Klasse URLConnection ... 1038
... 16.4 Das Common Gateway Interface ... 1045
... 16.5 Host- und IP-Adressen ... 1050
... 16.6 NetworkInterface ... 1053
... 16.7 Mit dem Socket zum Server ... 1055
... 16.8 Client/Server-Kommunikation ... 1064
... 16.9 SLL-Verbindungen mit JSSE ... 1068
... 16.10 Apache Jakarta Commons HttpClient und Net ... 1069
... 16.11 E-Mail ... 1070
... 16.12 Arbeitsweise eines Web-Servers ... 1078
... 16.13 Datagram-Sockets ... 1085
... 16.14 Tiefer liegende Netzwerkeigenschaften ... 1095
... 16.15 Multicast-Kommunikation ... 1096
17 Servlets und Java Server Pages ... 1099
... 17.1 Dynamische Web-Seiten und Servlets ... 1101
... 17.2 Vom Client zum Server und wieder zurück ... 1104
... 17.3 Servlets und Java Server Pages entwickeln und testen ... 1107
... 17.4 Java Server Pages in Tomcat und Eclipse ... 1109
... 17.5 Skript-Elemente ... 1114
... 17.6 Implizite Objekte ... 1117
... 17.7 Was der Browser mit auf den Weg gibt - HttpServletRequest ... 1118
... 17.8 Formulardaten ... 1120
... 17.9 Das HttpServletResponse-Objekt ... 1123
... 17.10 JSP-Direktiven ... 1124
... 17.11 Aktionen ... 1128
... 17.12 Beans ... 1129
... 17.13 Kleine Kekse: die Klasse Cookies ... 1131
... 17.14 Sitzungsverfolgung (Session Tracking) ... 1138
... 17.15 Tag-Libraries ... 1143
... 17.16 Servlets ... 1145
... 17.17 Der Lebenszyklus eines Servlets ... 1148
... 17.18 Das HttpServletResponse-Objekt ... 1153
... 17.19 Objekte und Dateien per POST verschicken ... 1158
... 17.20 Servlets und Sessions ... 1159
... 17.21 Weiterleiten und Einbinden von Servlet-Inhalten ... 1160
... 17.22 Inter-Servlet-Kommunikation ... 1161
... 17.23 Internationalisierung ... 1162
... 17.24 Tomcat: Spezielles ... 1164
18 Verteilte Programmierung mit RMI und SOAP ... 1167
... 18.1 Entfernte Methoden ... 1169
... 18.2 Nutzen von RMI bei Middleware-Lösungen ... 1172
... 18.3 Die Lösung für Java ist RMI ... 1173
... 18.4 Definition einer entfernten Schnittstelle ... 1174
... 18.5 Das entfernte Objekt ... 1175
... 18.6 Stellvertreterobjekte erzeugen ... 1178
... 18.7 Der Namensdienst (Registry) ... 1179
... 18.8 Der Server ... 1180
... 18.9 Einen Client programmieren ... 1182
... 18.10 Aufräumen mit dem DGC ... 1183
... 18.11 Entfernte Objekte übergeben und laden ... 1184
... 18.12 Registry wird vom Server gestartet ... 1186
... 18.13 RMI über die Firewall ... 1187
... 18.14 RMI und CORBA ... 1188
... 18.15 UnicastRemoteObject, RemoteServer und RemoteObject ... 1188
... 18.16 Daily Soap ... 1189
... 18.17 Java-API für XML Messaging (JAXM) ... 1193
... 18.18 Java Message Service (JMS) ... 1194
19 Applets, Midlets und Sound ... 1197
... 19.1 Applets und Applikationen - wer darf was? ... 1199
... 19.2 Das erste Hallo-Applet ... 1199
... 19.3 Die Zyklen eines Applets ... 1200
... 19.4 Parameter an das Applet übergeben ... 1200
... 19.5 Fehler in Applets finden ... 1204
... 19.6 Browserabhängiges Verhalten ... 1204
... 19.7 Datenaustausch zwischen Applets ... 1206
... 19.8 Musik in einem Applet und in Applikationen ... 1209
... 19.9 Webstart ... 1212
... 19.10 Java 2 Micro Edition ... 1212
20 Datenbankmanagement mit JDBC ... 1217
... 20.1 Das relationale Modell ... 1219
... 20.2 JDBC: der Zugriff auf Datenbanken über Java ... 1220
... 20.3 Die Rolle von SQL ... 1220
... 20.4 Datenbanktreiber für den Zugriff ... 1225
... 20.5 Datenbanken und ihre Treiber ... 1226
... 20.6 Eine Beispielabfrage ... 1232
... 20.7 Mit Java an eine Datenbank andocken ... 1233
... 20.8 Datenbankabfragen ... 1239
... 20.9 Die Ausnahmen bei JDBC ... 1246
... 20.10 Transaktionen ... 1246
... 20.11 Elemente einer Datenbank hinzufügen und aktualisieren ... 1247
... 20.12 Vorbereitete Anweisungen (Prepared Statements) ... 1249
... 20.13 Die LOBs (Large Objects) ... 1251
... 20.14 Die SQL3-Datentypen ARRAY, STRUCT und REF ... 1252
... 20.15 Metadaten ... 1252
... 20.16 DataSource ... 1258
... 20.17 Java Data Objects (JDO) ... 1259
... 20.18 XML-Datenbanken ... 1260
21 Reflection und Annotationen ... 1263
... 21.1 MetaData ... 1265
... 21.2 Mit dem Class-Objekt etwas über Klassen erfahren ... 1267
... 21.3 Annotationen ... 1283
... 21.4 Objekte manipulieren ... 1284
... 21.5 Methoden aufrufen ... 1292
... 21.6 Informationen und Identifizierung von Paketen ... 1295
22 Komponenten durch Bohnen ... 1299
... 22.1 Grundlagen der Komponententechnik ... 1301
... 22.2 Das JavaBeans Development Kit (BDK) ... 1303
... 22.3 Die kleinste Bohne der Welt ... 1306
... 22.4 Jar-Archive für Komponenten ... 1306
... 22.5 Worauf JavaBeans basieren ... 1308
... 22.6 Eigenschaften ... 1309
... 22.7 Ereignisse ... 1312
... 22.8 Weitere Eigenschaften ... 1315
... 22.9 Bean-Eigenschaften anpassen ... 1319
... 22.10 Property-Editoren ... 1320
... 22.11 BeanInfo ... 1320
... 22.12 Beliebte Fehler ... 1321
23 Java Native Interface (JNI) ... 1323
... 23.1 Java Native Interface und Invocation-API ... 1325
... 23.2 Die Schritte zur Einbindung einer C-Funktion in ein Java-Programm ... 1326
... 23.3 Erweiterung unseres Programms ... 1329
... 23.4 Erweiterte JNI-Eigenschaften ... 1330
24 Sicherheitskonzepte ... 1335
... 24.1 Der Sandkasten (Sandbox) ... 1337
... 24.2 Sicherheitsmanager (Security Manager) ... 1337
... 24.3 Dienstprogramme zur Signierung ... 1346
... 24.4 Digitale Unterschriften ... 1347
... 24.5 Verschlüsseln von Daten(-strömen) ... 1352
25 Dienstprogramme für die Java-Umgebung ... 1357
... 25.1 Die Werkzeuge im Überblick ... 1359
... 25.2 Der Compiler javac ... 1359
... 25.3 Das Archivformat Jar ... 1362
... 25.4 Nativer Compiler JET ... 1367
... 25.5 Einpacken von Java-Programmen in ein exe mit JSmooth ... 1367
... 25.6 Decompiler ... 1367
... 25.7 Obfuscate Programm RetroGuard ... 1372
... 25.8 Sourcecode Beautifier ... 1373
... 25.9 Ant ... 1374
26 Style-Guide ... 1379
... 26.1 Programmierrichtlinien ... 1381
... 26.2 Allgemeine Richtlinien ... 1381
... 26.3 Quellcode kommentieren ... 1382
... 26.4 Bezeichnernamen ... 1385
... 26.5 Formatierung ... 1387
... 26.6 Ausdrücke ... 1389
... 26.7 Reihenfolge der Eigenschaften in Klassen ... 1390
... 26.8 Zugriffsrechte und Zugriffsmethoden ... 1391
... 26.9 Verweise ... 1392A Die Begleit-CD ... 1393
Die mit 1340 Seiten wohl dickste Einführung in Java ist in dritter Auflage erschienen. Alle Kapitel wurden inhaltlich überarbeitet. Auch das Layout hat sich deutlich verbessert. Wirklich neu hinzugekommen sind einige Seiten über die Entwicklungsumgebung Eclipse, die sich in der Java-Gemeinde nach kurzer Zeit bereits starker Verbreitung erfreut.
Kaum ein Gebiet, das Ullenboom nicht streift
Von der Installation, über die Vermittlung der objektorientierten Programmierung, eine detaillierte Sprachbeschreibung bis hin zur Verwendung der Standardbibliothek und der Lösung typischer Programmierprobleme enthält dieses Buch in übersichtlicher und leicht verständlicher Form all das, was auch andere Einführungen bieten. Das aber ist hier erst der Anfang. Ob XML oder die Programmierung von grafischen Benutzer-Schnittstellen, ob Datenbanken oder Java-Beans, ob Netzwerk- oder verteilte Programmierung, ob Java Applets oder Java Server Pages: es gibt kaum ein Gebiet, was Ullenboom in seiner Darstellung nicht streift und zumindest so detailliert darstellt, dass der Leser einen Ansatzpunkt für seine eigenen Entwicklungen hat. Die beiliegende CD-ROM enthält viele nützliche Programme und Informationen, unter anderem auch eine Installationsversion von Eclipse.
Ausgangsbasis für Expeditionen in neue Programmierbereiche
Damit ist die Java-Insel nach wie vor ein hervorragender Einstieg in Java für all jene, die über kleine eigene Programme und erste Schritte schnell hinausgehen wollen. Java-Profis bietet das Buch eine übersichtliche Referenz und eine gute Ausgangsbasis für Expeditionen in neue Programmierbereiche.
(Peter Starke)
…mehr