lehrerbibliothek.deDatenschutzerklärung
Java Kochbuch
Java Kochbuch




Ian F. Darwin

O'Reilly Verlag GmbH & Co. KG
EAN: 9783897212831 (ISBN: 3-89721-283-8)
908 Seiten, paperback, 18 x 23cm, 2002

EUR 52,00
alle Angaben ohne Gewähr

Umschlagtext
Das Java Kochbuch ist eine umfassende Sammlung von typischen Aufgabenstellungen, Lösungen und praxisbezogenen Beispielen für jeden Java-Programmierer. Es enthält Hunderte von erprobten Rezepten für die client- und serverseitige Programmierung und behandelt sowohl die Core-APIs als auch speziellere APIs. Das Themenspektrum reicht von einfachen Aufgaben wie der richtigen Einstellung Ihres CLASSPATH bis zu kompletten Programmen, die demonstrieren, wie Sie mit XML arbeiten oder E-Mail in Ihre Applikationen einbinden können.



Das Java Kochbuch bietet Ihnen kurze, auf das Wesentliche konzentrierte Codebeispiele, die sich leicht in andere Programme integrieren lassen. Die Kochbuch-Rezepte können direkt eingesetzt oder auch als Möglichkeit genutzt werden, mehr über Java zu lernen. Dadurch eignet sich das Buch gleichermaßen für Java-Einsteiger mit Grundkenntnissen wie für Fortgeschrittene – für beide ist das Java Kochbuch das ideale Java-"Zweitbuch".



Aus dem Inhalt:



Kompilieren, Ausführen und Debuggen von Java-Programmen

Interaktion mit verschiedenen Umgebungen

Strings und Mustererkennung

Arrays und andere Datensammlungen

Programmierung serieller und paralleler Ports

Dateien, Verzeichnisse und Dateisysteme

Entwicklung von Netzwerk-Clients und -Servern

Web-Programmierung einschließlich Applets

Servlets und JSP

E-Mail

Datenbank-Zugriff

Verwendung von XML

Verteilte Programmierung

Introspektion

Internationalisierung

Grafik und Klang

GUI-Entwicklung
Inhaltsverzeichnis
Vorwort XV

1 Erste Schritte: Kompilieren, Ausführen und Debuggen 1
1.0 Einführung 1
1.1 Java kompilieren und ausführen: JDK 1
1.2 Bearbeiten und Kompilieren mit einem Editor mit Farbkennzeichnung 7
1.3 Kompilieren, ausführen und testen mit einer IDE 8
1.4 Klassen aus diesem Buch verwenden 13
1.5 Das Kompilieren mit jr automatisieren 14
1.6 Das Kompilieren mit make automatisieren 15
1.7 Das Kompilieren mit Ant automatisieren 16
1.8 Applets ausführen 19
1.9 Umgang mit Deprecation-Warnungen 22
1.10 Bedingtes Debugging ohne #ifdef 24
1.11 Debugging-Ausgaben 25
1.12 Debugger verwenden 26
1.13 Unit-Testing: Debugger überflüssig machen 29
1.14 Java-Klassendateien dekompilieren 31
1.15 Dekompilieren eigener Java-Dateien verhindern 34
1.16 Lesbare Tracebacks erhalten 35
1.17 Weitere Java-Quellcodebeispiele finden 36
1.18 Programm: Debug 38

2 Interaktion mit verschiedenen Umgebungen 41
2.0 Einführung 41
2.1 Umgebungsvariablen abfragen 41
2.2 Systemeigenschaften 43
2.3 Code abhängig vom JDK-Release schreiben 45
2.4 Betriebssystem-abhängigen Code schreiben 46
2.5 CLASSPATH effektiv nutzen 49
2.6 Erweiterungen oder andere APIs aus Packages nutzen 51
2.7 Kommandozeilenargumente parsen 52

3 Strings und anderes 57
3.0 Einführung 57
3.1 Strings in Teilstrings zerlegen 59
3.2 Strings mit dem StringTokenizer zerlegen 60
3.3 Strings mit + und StringBuffer verketten 63
3.4 Strings zeichenweise verarbeiten 65
3.5 Strings ausrichten 66
3.6 Zwischen Unicode-Zeichen und Strings konvertieren 69
3.7 Wörter oder Zeichen in einem String umkehren 70
3.8 Tabulatorzeichen expandieren und komprimieren 71
3.9 Groß- und Kleinschreibung 76
3.10 Textdokumente einrücken 77
3.11 Nicht-druckbare Zeichen eingeben 79
3.12 Leerzeichen am Ende eines Strings abschneiden 80
3.13 Durch Kommata getrennte Werte parsen 81
3.14 Programm: Ein einfacher Textformatierer 86
3.15 Programm: Soundex-Namensvergleiche 88

4 Mustererkennung mit regulären Ausdrücken 91
4.0 Einführung 91
4.1 Die Syntax regulärer Ausdrücke 93
4.2 Wie reguläre Ausdrücke in der Praxis funktionieren 95
4.3 Reguläre Ausdrücke in Java verwenden 97
4.4 Reguläre Ausdrücke interaktiv testen 99
4.5 Den gematchten Text finden 100
4.6 Den gematchten Text ersetzen 102
4.7 Jedes Auftreten eines Musters ausgeben 102
4.8 Zeilen ausgeben, die ein bestimmtes Muster enthalten 104
4.9 Groß- und Kleinbuchstabenverarbeitung bei match( ) und subst( ) steuern 106
4.10 Einen regulären Ausdruck vorab kompilieren 107
4.11 Zeilenumbrüche im Text finden 108
4.12 Programm: Data Mining 110
4.13 Programm: Vollständiges Grep 112

5 Zahlen 117
5.0 Einführung 117
5.1 Test: Ist ein String eine gültige Zahl? 120
5.2 Eine größere Zahl in einer kleineren speichern 121
5.3 Einen Bruchteil eines Integers nehmen, ohne Gleitkommazahlen
zu verwenden 122
5.4 Genauigkeit von Gleitkommazahlen gewährleisten 123
5.5 Gleitkommazahlen vergleichen 125
5.6 Rundung von Gleitkommazahlen 127
5.7 Zahlen formatieren 128
5.8 Konvertieren zwischen Binär-, Oktal-, Dezimal- und Hexadezimalwerten 130
5.9 Operationen auf einer Reihe von Integern 131
5.10 Mit römischen Zahlen arbeiten 132
5.11 Formatierung mit englischen Pluralformen 137
5.12 Zufallszahlen generieren 138
5.13 Bessere Zufallszahlen generieren 139
5.14 Trigonometrische Funktionen berechnen 140
5.15 Logarithmen errechnen 141
5.16 Matrizen multiplizieren 142
5.17 Komplexe Zahlen verwenden 144
5.18 Der Umgang mit sehr großen Zahlen 146
5.19 Programm: TempConverter 148
5.20 Programm: Palindrome mit Zahlen 152

6 Datum und Uhrzeit 155
6.0 Einführung 155
6.1 Das heutige Datum finden 157
6.2 Datum und Uhrzeit in einem spezifischen Format ausgeben 158
6.3 Datumsangaben anderer Epochen darstellen 160
6.4 YMDHMS in einen Kalender oder in Epochensekunden konvertieren 161
6.5 Strings als Datumsangaben parsen 161
6.6 Epochensekunden in DMYHMS konvertieren 163
6.7 Addition und Subtraktion mit Datum oder Kalender 165
6.8 Differenz zwischen zwei Datumsangaben 166
6.9 Datumsangaben vergleichen 167
6.10 Tag der Woche/des Monats/des Jahres oder Kalenderwoche 169
6.11 Kalenderblatt 170
6.12 Hochauflösende Timer 173
6.13 Schlafen 175
6.14 Programm: Erinnerungsdienst 175

7 Datenstrukturierung mit Java 179
7.0 Einführung 179
7.1 Datenstrukturierung mit Arrays 180
7.2 Größenanpassung von Arrays 182
7.3 Wie ein Array, nur dynamischer 183
7.4 Datenunabhängiger Zugriff mit Iteratoren 185
7.5 Daten in einer verketteten Liste strukturieren 186
7.6 Zuordnung mit Hashtable und HashMap 189
7.7 Strings in Properties- und Preferences-Objekten speichern 190
7.8 Eine Sammlung sortieren 193
7.9 Sortieren mit Java 1.1 197
7.10 Sortierung vermeiden 198
7.11 Mengen 200
7.12 Ein Objekt in einer Sammlung finden 201
7.13 Eine Sammlung in ein Array konvertieren 203
7.14 Einen eigenen Iterator schreiben 204
7.15 Stack 206
7.16 Mehrdimensionale Strukturen 207
7.17 Sammlungen 210
7.18 Programm: Zeitwertvergleiche 211

8 Objektorientierte Techniken 215
8.0 Einführung 215
8.1 Objekte drucken: Formatierung mit toString( ) 217
8.2 Überschreiben der Methode equals( ) 218
8.3 Überschreiben der Methode hashCode( ) 221
8.4 Die Methode clone( ) 223
8.5 Die Methode finalize( ) 225
8.6 Innere Klassen verwenden 227
8.7 Callbacks durch Interfaces zur Verfügung stellen 228
8.8 Polymorphismus/Abstrakte Methoden 232
8.9 Mehrere Werte als Ergebnis einer Methode zurückgeben 234
8.10 Exceptions selber basteln 237
8.11 Programm: Plotter 238

9 Eingabe und Ausgabe 241
9.0 Einführung 241
9.1 Die Standard-Eingabe lesen 245
9.2 In die Standard-Ausgabe schreiben 248
9.3 Eine Datei anhand des Namens öffnen 249
9.4 Eine Datei kopieren 250
9.5 Eine Datei in einen String einlesen 253
9.6 Standard-Streams neu zuweisen 254
9.7 Einen Stream während des Schreibens duplizieren 256
9.8 Lesen/Schreiben eines anderen Zeichensatzes 258
9.9 Diese verflixten Zeilenende-Zeichen 259
9.10 Vorsicht bei plattformabhängigem Dateicode 260
9.11 »Fortgesetzte« Zeilen lesen 261
9.12 Eine Datei scannen 267
9.13 Binäre Daten 270
9.14 Suchen 271
9.15 Daten-Streams in C schreiben 273
9.16 Serialisierte Objekte speichern und wiederherstellen 275
9.17 ClassCastExceptions mit SerialVersionUID verhindern 276
9.18 JAR- oder Zip-Archive lesen und schreiben 279
9.19 Komprimierte Dateien lesen und schreiben 282
9.20 Programm: Text in PostScript umwandeln 283
9.21 Programm: TarList (Dateikonverter) 287

10 Verzeichnis- und Dateisystem-Operationen 301
10.0 Einführung 301
10.1 Die Dateiinformation ermitteln 301
10.2 Eine Datei anlegen 305
10.3 Eine Datei umbenennen 306
10.4 Eine Datei löschen 307
10.5 Eine temporäre Datei anlegen 308
10.6 Dateiattribute ändern 310
10.7 Ein Verzeichnis auflisten 312
10.8 Das Root-Verzeichnis ermitteln 313
10.9 Neue Verzeichnisse anlegen 315
10.10 Programm: Find 316

11 Programmierung serieller und paralleler Ports 319
11.0 Einführung 319
11.1 Einen Port auswählen 321
11.2 Einen seriellen Port öffnen 326
11.3 Einen parallelen Port öffnen 329
11.4 Portkonflikte auflösen 333
11.5 Lesen und Schreiben: »Lock Step« 337
11.6 Lesen und Schreiben: Ereignisgesteuert 340
11.7 Lesen und Schreiben: Threads 344
11.8 Programm: Penman Plotter 346

12 Grafik und Klang 351
12.0 Einführung 351
12.1 Zeichnen mit einem Graphics-Objekt 352
12.2 Grafische Komponenten testen 353
12.3 Text zeichnen 354
12.4 Zentrierten Text in eine Komponente zeichnen 355
12.5 Einen Schatten zeichnen 356
12.6 Ein Bild zeichnen 359
12.7 Eine Klangdatei abspielen 364
12.8 Ein bewegliches Bild mit Video anzeigen 366
12.9 Text mit 2D zeichnen 369
12.10 Drucken: JDK 1.1 371
12.11 Drucken: Java 2 373
12.12 Programm: PlotterAWT 377
12.13 Programm: Grapher 379

13 Grafische Benutzeroberflächen 383
13.0 Einführung 383
13.1 GUI-Komponenten anzeigen 384
13.2 Ein Fenster-Layout entwerfen 386
13.3 Registerkarten 388
13.4 Action-Handling: Buttons 390
13.5 Action-Handling mit anonymen inneren Klassen 392
13.6 Ein Programm durch »Fenster schließen« beenden 394
13.7 Dialoge: Später ist zu spät 399
13.8 Fenster mit Programmausgabe 401
13.9 Eine Datei mit JFileChooser wählen 404
13.10 Farbe auswählen 407
13.11 Ein Hauptfenster zentrieren 410
13.12 Das Look-and-Feel eines Swing-Programms ändern 411
13.13 Programm: Benutzerdefinierte Auswahl der Schriftart 416
13.14 Programm: Benutzerdefinierter Layoutmanager 420

14 Internationalisierung und Lokalisierung 429
14.0 Einführung 429
14.1 Einen Button mit Internationalisierungsressourcen erstellen 430
14.2 Verfügbare Locales auflisten 432
14.3 Ein Menü mit Internationalisierungsressourcen erstellen 433
14.4 Bequemlichkeitsroutinen für die Internationalisierung 433
14.5 Ein Dialog mit Internationalisierungsressourcen 435
14.6 Ein Ressourcenbündel erstellen 437
14.7 Code mit JILT behandeln 438
14.8 Ein bestimmtes Locale verwenden 439
14.9 Standard-Locale einstellen 440
14.10 Nachrichten formatieren 442
14.11 Programm: MenuIntl 443
14.12 Programm: BusCard 446

15 Netzwerk-Clients 451
15.0 Einführung 451
15.1 Kontakt zu einem Server herstellen 453
15.2 Netzwerkadressen finden 455
15.3 Netzwerkfehler behandeln 456
15.4 Textdaten lesen und schreiben 457
15.5 Binäre Daten lesen und schreiben 460
15.6 Serialisierte Daten lesen und schreiben 462
15.7 UDP-Datagramme 464
15.8 Programm: TFTP-UDP-Client 467
15.9 Programm: Telnet-Client 471
15.10 Programm: Chat-Client 474

16 Java auf dem Server: Sockets 481
16.0 Einführung 481
16.1 Einen Server betriebsbereit machen 481
16.2 Eine Antwort (Text oder Binärwert) zurückgeben 485
16.3 Informationen als Objekt zurückgeben 489
16.4 Mehrere Clients gleichzeitig bedienen 490
16.5 Netzwerk-Protokollierung 495
16.6 Programm: Ein Chat-Server in Java 500

17 Netzwerk-Clients II: Applets und Web-Clients 507
17.0 Einführung 507
17.1 Java in eine Webseite einbetten 507
17.2 Applet-Techniken 509
17.3 Kontakt mit einem Server auf dem Applet-Host aufnehmen 512
17.4 Ein Applet ein Dokument anzeigen lassen 515
17.5 Ein Applet ein CGI-Skript ausführen lassen 517
17.6 Den Inhalt einer URL lesen 518
17.7 HTML aus einer URL extrahieren 519
17.8 URLs aus einer Datei extrahieren 522
17.9 Einen Dateinamen in eine URL umwandeln 524
17.10 Programm: MkIndex 525
17.11 Programm: LinkChecker 529

18 Web Server Java: Servlets und JSP 537
18.0 Einführung 537
18.1 Erstes Servlet: Eine HTML-Seite erzeugen 538
18.2 Servlets: Formular-Parameter verarbeiten 542
18.3 Cookies 545
18.4 Sitzungsverfolgung 548
18.5 PDF aus einem Servlet erzeugen 555
18.6 HTML trifft auf Java: JSP 561
18.7 JSP Include/Forward 566
18.8 JavaServer Pages verwenden ein Servlet 567
18.9 Ihre JSP mit einer JavaBean vereinfachen 568
18.10 Zusammenfassung JSP-Syntax 572
18.11 Programm: CookieCutter 573
18.12 Programm: JabaDot Web News Portal 574

19 Java und E-Mail 585
19.0 Einführung 585
19.1 E-Mail senden: Browser-Version 586
19.2 E-Mail über echten E-Mail-Client versenden 590
19.3 Ein Server-Programm E-Mail-fähig machen 593
19.4 MIME-Mail senden 599
19.5 Mail-Einstellungen angeben 602
19.6 E-Mail ohne Verwendung von JavaMail senden 604
19.7 E-Mail lesen 608
19.8 Programm: MailReaderBean 613
19.9 Programm: MailClient 617

20 Datenbank-Zugriff 629
20.0 Einführung 629
20.1 Textdatei-Datenbanken 631
20.2 DBM-Datenbanken 636
20.3 JDBC-Setup und -Verbindung 639
20.4 Mit einer JDBC-Datenbank verbinden 642
20.5 Eine JDBC-Abfrage senden und die Resultate ermitteln 645
20.6 Parametrisierte JDBC-Anweisungen verwenden 648
20.7 Gespeicherte Prozeduren in JDBC verwenden 652
20.8 Daten mittels eines ResultSet ändern 653
20.9 Datenänderung mittels SQL 654
20.10 JDBC-Metadaten aufsuchen 656
20.11 Programm: JDAdmin 663

21 XML 671
21.0 Einführung 671
21.1 XML mit XSLT transformieren 674
21.2 XML mit SAX parsen 677
21.3 XML mit DOM parsen 679
21.4 Die Struktur mit einer DTD verifizieren 681
21.5 Mit DOM selber XML erzeugen 682
21.6 Programm: xml2mif 684

22 Verteilte Systeme mit Java: RMI 687
22.0 Einführung 687
22.1 Den RMI-Kontrakt definieren 689
22.2 RMI-Client 691
22.3 RMI-Server 692
22.4 RMI im Netzwerk einsetzen 695
22.5 Programm: RMI-Callbacks 696
22.6 Programm: RMIWatch 700

23 Packages und Package-Bildung 709
23.0 Einführung 709
23.1 Ein Package erstellen 710
23.2 Klassen mit Javadoc dokumentieren 711
23.3 Archivierung mit jar 715
23.4 Ein Applet aus einem JAR heraus ausführen 716
23.5 Ein Applet mit einem JDK ausführen 717
23.6 Ein Programm in einem JAR ausführen 721
23.7 Eine Klasse als JavaBean zubereiten 721
23.8 Die Bean in einem JAR einmachen 725
23.9 Ein Servlet in eine WAR-Datei packen 726
23.10 »Einmal schreiben, überall installieren« 727
23.11 Java Web Start 728
23.12 Eine JAR-Datei signieren 734

24 Threads in Java 737
24.0 Einführung 737
24.1 Code in einem anderen Thread ausführen 738
24.2 Ein bewegliches Bild animiert anzeigen 743
24.3 Einen Thread anhalten 746
24.4 Rendezvous und Timeouts 748
24.5 Thread-Kommunikation: Synchronisierter Code 750
24.6 Thread-Kommunikation: wait( ) und notifyAll( ) 757
24.7 Hintergrundsicherung in einem Editor 763
24.8 Netzwerk-Server mit Threads 764

25 Introspektion oder »Eine Klasse namens Class« 775
25.0 Einführung 775
25.1 Eine Klassenbeschreibung erhalten 776
25.2 Methoden und Felder finden und verwenden 777
25.3 Eine Klasse dynamisch laden und instantiieren 781
25.4 Eine Klasse aus dem Nichts heraus konstruieren 784
25.5 Leistung messen 785
25.6 Informationen über eine Klasse ausgeben 789
25.7 Programm: CrossRef 791
25.8 Programm: AppletViewer 796

26 Java in Verbindung mit anderen Sprachen 805
26.0 Einführung 805
26.1 Ein Programm ausführen 805
26.2 Ein Programm ausführen und seine Ausgabe abfangen 808
26.3 Java und Skripten mit Hilfe von BSF verbinden 812
26.4 Nativen Code (C/C++) einbauen 817
26.5 Java von nativem Code aus aufrufen 823
26.6 Programm: DBM 824

Nachwort 829

Index 831