Marktplatzangebote
4 Angebote ab € 7,82 €
  • Gebundenes Buch

Diese 6. Auflage des Java-Kultbuches wurde gründlich überarbeitet, aktualisiert und erweitert. Alle wichtigen Neuerungen zu Java 6 wurden aufgenommen. 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,…mehr

Produktbeschreibung
Diese 6. Auflage des Java-Kultbuches wurde gründlich überarbeitet, aktualisiert und erweitert. Alle wichtigen Neuerungen zu Java 6 wurden aufgenommen. 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 vielem mehr.

Inhaltsverzeichnis:
1 Schon wieder eine neue Sprache? ... 49
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 ... 1392

A Die Begleit-CD ... 1393
Autorenporträt
Christian Ullenboom, Dipl.-Informatiker, 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.