~

Vorwort

Hinweise zum Buch

Kapitel 1 What's new?

1.1 Java 1.2, Java 2.0, JDK 1.2 und JDK 1.3
1.2 JavaSoft und Sun
1.3 Die Java-Neuerungen
Kompatibilität und das Java-Plug-In
Interoperabilität
Anpassung einer Applikation an verschiedene Länderstandards
Erweiterung der Sicherheitsschnittstelle von Java
Verschlüsselung in Java
Das Abstract Window Toolkit
Java-Archive
Datenbankunterstützung
Verteilte Programmierung und Object Serialization
Java IDL
JavaBeans
Servlets
Inner Classes und Anonymous Classes
Native Methoden
Reference Objects
Multimedia-Unterstützung in Java 2
Die Java-2D-API-Referenz
Swing JDK 1.2/1.3 und die Java Accessibility API
Drag&Drop
Die Java-Standardklassen und die Datei classes.zip
Veränderungen bei den Tools
Neues Lizenzierungsmodell für Java 2.0
1.4 Zusammenfassung

Kapitel 2 Schnuppertour Java

2.1 Was ist Java?
Das Internet
Ein kurzer Abriss der Internet-Geschichte
HTML
Die Organisation des Internets
Die Adressierung im Internet
Die IP-Nummern
Das DNS-Konzept
Uniform Resource Locator
2.2 Die Geschichte von Java
Erstes Java-Auftreten, HotJava und das JDK 1.0
Was macht Java so einzigartig?
Die Herkunft von Java
2.3 Zusammenfassung

Kapitel 3 Das JDK

3.1 Bezug des JDK
3.2 Installation des JDK
classes.zip, src.zip, src.jar, rt.jar & Co.
Verzeichnisstruktur innerhalb des JDK-Verzeichnisses
Die Java-Laufzeitumgebung jre
Das Java-Plug-In
3.3 Die JDK-Dokumentation
3.4 Fehlervorbeugung und Fehlerbehebung beim JDK
Pfad-Angaben
CLASSPATH
Verwendung von mehreren JDK-Versionen unter Windows
»Class not found« und andere Fehlermeldungen
Die Java-Umgebungsvariablen
Unbekannte Fehler
3.5 Die wichtigsten JDK-Tools
Ein paar allgemeine Hinweise zu den JDK-Programmen
Der Appletviewer
Der Java-Compiler Javac
Der Java-Interpreter
3.6 Zusammenfassung

Kapitel 4 Unterschiede zwischen Java-Applikationen und -Applets

4.1 Die technischen Unterschiede
4.2 Eine erste Beispielanwendung und ein erstes Applet
Eine erste Applikation
Übergabe von Aufrufargumenten an ein Java-Programm
Ein erstes Applet
4.3 Zusammenfassung

Kapitel 5 Java-Hintergründe

5.1 Was ist OOP?
5.2 Die Definition von Objektorientierung
Objektmethoden
Who's calling?
5.3 Klassen und Instanzen
Superklasse und Subklasse
Metaklassen
Abstrakte Klassen
5.4 Vererbung
Mehrfachvererbung
5.5 Überschreiben
5.6 Polymorphismus
5.7 Binden
Frühes Binden
Spätes Binden
5.8 Die Grundprinzipien der objektorientierten Programmierung
5.9 Objektorientierte Analyse und objektorientiertes Design
Die objektorientierte Analyse
Das objektorientierte Design
5.10 Die Objektorientierung von Java
Java-Klassen
Polymorphismus und Binden
Schnittstellen und Pakete statt Mehrfachvererbung
Überladen, Überschreiben und Überschatten
Globale Vereinbarungen
5.11 Zusammenfassung
5.12 Plattformunabhängigkeit von Java und die JVM
Die binäre Plattformunabhängigkeit von Java
Die JVM-Architektur
Die Datentypen der JVM
Die Java-Plattformunabhängigkeit auf Quellebene
5.13 Zusammenfassung

Kapitel 6 Java - die Hauptbestandteile der Sprache

6.1 Token
Der Unicode-Zeichensatz
Die UTF-8-Codierung
Kleiner Vorgriff auf die Datentypen von Java
Die Java-Token-Details
Literale
Operatoren
Operatoren-Priorität
Kommentare
6.2 Typen
Operationen mit den Datentypen
6.3 Datenfelder (Arrays)
Deklarieren von Datenfeldern
Erstellen von Datenfeldobjekten
Dynamische Arrays
Speichern und Zugreifen auf Datenfeldelemente
Collections
6.4 Ausdrücke, Operatoren und Casting
Ausdrücke
Operatoren
Typkonvertierungen und der Casting-Operator
Der Instanceof-Operator
6.5 Anweisungen
Blöcke und Anweisungen
Leere Anweisungen
Bezeichnete Anweisung
Deklarationen
Ausdrucksanweisungen
Auswahlanweisungen
Iterationsanweisungen
Java-Sprunganweisungen
Schutzanweisung
Unerreichbare Anweisung
6.6 Klassen und Objekte
Allgemeines zu Klassen in Java
Allgemeine Klassendeklaration
Klassen-Modifier
Der Klassenname
Superklassen und das Schlüsselwort extends
Designregeln für Klassen
Innere und anonyme Klassen bzw. Schnittstellen
Adapterklassen
Konstruktoren und der new-Operator
Das Speichermanagement
Das Schlüsselwort this
6.7 Methoden
Deklaration einer Methode
Die Zugriffsspezifizierung
Die Methodenmodifier
Die Rückgabewerte von Methoden
Der Methodenname
Die Parameterliste
Der Methodenkörper
Methoden überladen und überschreiben
6.8 Schnittstellen und das Schlüsselwort implements
Erstellung einer Schnittstelle
Namensregeln für Schnittstellen
Die Erweiterung anderer Schnittstellen
Der Körper einer Schnittstelle
Überschreiben und Verwenden von Schnittstellenmethoden
Verwenden von Feldern einer Schnittstelle
Beispiele mit Schnittstellen
6.9 Variablen
Instanzvariablen
Klassenvariablen
Klassenvariablen versus Instanzvariablen
Lokale Variablen
Die Java-Konstanten
6.10 Der Zugriff auf Java-Elemente
6.11 Pakete und die import-Anweisung
Die Verwendung von Paketen
Erstellung eines Paketes
Das anonyme Default-Paket
Zugriffslevel
6.12 Zusammenfassung

Kapitel 7 Grundlagen der Applet-Erstellung

7.1 Die Vorbereitung
7.2 Grundlagen der Einbindung von Java-Applets in HTML-Seiten
HTML-Grundlagen
7.3 Konkrete Referenzierung eines Java-Applets
Die <APPLET>-Syntax
Die Parameter des <APPLET>-Tags
Die <EMBED>-Syntax
Die <OBJECT>-Syntax
Welches Tag ist sinnvoll?
Die ursprüngliche HotJava-Syntax
7.4 Die interne Arbeitsweise eines Applets
Erstellung und Grundmethoden eines Applets
Ein Musterapplet als Schablone
7.5 Die Applet-Klasse
Ausgabe in einem Applet mit der paint()-Methode
Übergabewerte für ein Applet
Bilder importieren
Importieren und Abspielen von Sound
Die Interaktion des Applets mit der Umgebung und den Lebenszyklus eines Applets verwalten
Methoden zur Ereignisbehandlung in Applets
7.6 Multithreading bei Applets
7.7 Zusammenfassung

Kapitel 8 Multithreading

8.1 Klassen Thread-fähig machen
Die Erweiterung der Klasse Thread
Implementation von Runnable
8.2 Thread-Gruppen
Eine Thread-Gruppe erstellen
Hinzufügen eines Threads zu einer Thread-Gruppe
8.3 Dämonen
8.4 Schutzmaßnahmen bei Multithreading
Methoden synchronisieren
Vorsicht, Deadlock!
Synchronisierte Blöcke
Thread-sicherer Zugriff auf Datenstrukturen und Objekte
8.5 Zusammenfassung

Kapitel 9 Grafik und Animation

9.1 Zeichnen, Update und neu zeichnen
9.2 Punkte, Linien, Kreise und Bögen
Das Koordinatensystem
Eine Linie zeichnen - die drawLine()-Methode
Ein Rechteck zeichnen - die drawRect()-Methode
Ein gefülltes Rechteck zeichnen - fillRect()
Löschen eines Bereichs - clearRect()
Kopieren eines Bereichs - copyArea()
Ein 3D-Rechteck zeichnen - die draw3dRect()-Methode
Ein gefülltes 3D-Rechteck zeichnen - fill3dRect()
Abgerundete Rechtecke - drawRoundRect()
Abgerundete gefüllte Rechtecke - fillRoundRect()
Zeichnen von Polygonen - drawPolygon()
Zeichnen von gefüllten Polygonen - fillPolygon()
Zeichnen von Kreisen und Ellipsen - drawOval()
Zeichnen von gefüllten Kreisen und Ellipsen - fillOval()
Zeichnen von Bögen - drawArc()
Zeichnen von gefüllten Bögen - fillArc()
9.3 Farbangaben
Die Color-Klasse
Farben setzen - setColor()
Hintergrundfarben und Vordergrundfarben pauschal setzen - setBackground() und setForeground()
Ein Apfelmännchen als Java-Applet
Abrufen von Farbinformationen
Textausgabe über den Zeichnen-Modus
Erstellen von Fontobjekten
Abfragen der zur Verfügung stehenden Fonts
Informationen über einen speziellen Font abfragen
9.4 Die Java-Zeichenmodi
Der Paint-Modus
Der XOR-Zeichenmodus
9.5 Zeichnen von Bildern
Laden von Bildern - getImage()
Anzeigen von Bildern - drawImage()
Der Imageobserver und der MediaTacker
9.6 Animationen
Aufbau eines Animationsrahmens
Abspielen einer Animation
Flimmereffekte in Animationen reduzieren
Clipping
Double-Buffering
9.7 Das 2D-API
Java-2D-Grundlagen
Zeichnen unter dem Java-2D-API
Komplexere Zeichnenoperationen im 2D-API
Text unter Java 2D
9.8 Bilder unter Java 2D
Anzeige von Bildern unter Java 2D
Transparenz und Bilder
Rendering als Bestandteil von Java 2D
Kontrolle der Ausgabequalität
Transformation von 2D-Objekten
Neue Formen kreieren
Stroking Paths
Füllen von Formen
Komposition von Bildern
Transparenz
Text und Fonts unter Java 2D
Farbmanagement unter Java 2D
2D-Bildbearbeitung
Offscreen-Puffer unter Java 2D
2D-Graphics Devices
9.9 Die Java-2D-API-Referenz
9.10 Sound und Töne in Java
Das Abspielen und Stoppen eines Audio-Clips - play()
Die Sound-Möglichkeiten der JDK-Demos
Das Java Media Framework
9.11 Zusammenfassung

Kapitel 10 Das AWT

10.1 Was ist das Abstract Window Toolkit?
10.2 Woraus besteht das AWT?
Was sind AWT-Komponenten?
Was versteht man unter AWT-Container?
Container und Applets
Der Aufbau der AWT-Klassenhierarchie
Was ist ein AWT-Layoutmanager?
10.3 Container
Panels
Frames
Dialoge
10.4 Schaltflächen
10.5 Labels
10.6 Kontrollkästchen und Optionsfelder
Kontrollkästchen
Optionsfelder
Reaktionen auf Kontrollfelder und Radiobuttons
10.7 Auswahlmenüs und Listenfelder
Einzeilige Listenfelder
Mehrzeilige Listenfelder
10.8 Textbereiche und Textfelder
Textbereiche
Textfelder
Gemeinsame Methoden
Spezielle TextField-Methoden
Spezielle TextArea-Methoden
10.9 Schieber und Bildlaufleisten
10.10 Zeichenbereiche
10.11 Menüs
10.12 Eine Schablone für alle Fälle
10.13 Layoutmanager
Layout-Regeln
Die Layoutmanager im Detail
10.14 Die Eventmodelle 1.0 und 1.1
Der AWT-Event-Handler 1.0
Tastaturereignisse des AWT-Event-Handlers
Mausereignisse des AWT-Event-Handlers
Zentrale Aspekte des 1.0-Eventhandlings
Das Eventhandling 1.1
Der Umstieg vom 1.0-Eventmodell auf das 1.1-Modell
10.15 Zusammenfassung

Kapitel 11 Swing & Co

11.1 Das Swing-API
11.2 Swing und AWT im Vergleich
Einige Swing-Probleme
11.3 Swing in der Praxis
Umschalten von Look and Feel
Swing und Applets
11.4 Eigenständige Applikationen und Swing
Eine Swing-Applikations-Schablone
11.5 Swing-Komponenten im Detail
11.6 Zusammenfassung

Kapitel 12 Debugging und Ausnahmebehandlung

12.1 Debugging
Fehler im Vorfeld abfangen
Vernünftige Sicherungsmaßnahmen
Fehler finden und beseitigen
Fehlerlokalisierung ohne Debugger
Fehlerlokalisierung mit Debugger
12.2 Ausnahmebehandlung und andere Fehlerbehandlungen
Die individuell programmierte Fehlerbehandlung
Die Ausnahmebehandlung von Java
Benutzerdefinierte Exceptions
Die RuntimeException
12.3 Zusammenfassung

Kapitel 13 Ein- und Ausgabe in Java

13.1 Allgemeines zur Ein- und Ausgabe unter Java
13.2 Die Klasse InputStream
Methoden zum Einlesen
Blockaden vorher abfragen
Überspringen von Daten
Positionen beim Lesen markieren
Ressourcen freigeben
13.3 Die Klasse OutputStream
Methoden zum Schreiben
Den gepufferten Cache ausgeben
Ressourcen freigeben
13.4 Byte-Datenfeldströme
13.5 Der StringBufferInputStream
13.6 Gefilterte Ströme
13.7 Gepufferte Ströme
13.8 Datenströme
Die DataInput-Schnittstelle
Die DataOutput-Schnittstelle
Die DataInputStream- und DataOutputStream-Klassen
13.9 Die PrintStream-Klasse
13.10 Pipe-Ströme
13.11 Objektströme
13.12 Einige spezielle Utility-Ströme
Die LineNumberInputStream-Klasse
Die SequenceInputStream-Klasse
Die PushbackInputStream-Klasse
Die StreamTokenizer-Klasse
13.13 Die File-Klasse
Überprüfung, ob Datei oder Verzeichnis
Lese- und Schreiberlaubnis überprüfen
Die letzte Änderung überprüfen
Die Existenz eines Objekts überprüfen
Pfadkontrolle
Namen und Pfad einer Datei oder eines Verzeichnisses ermitteln
Eine Datei oder ein Verzeichnis umbenennen
Dateien löschen
Verzeichnisse erstellen
Den Inhalt eines Verzeichnisses angeben
13.14 Dateiströme - FileInputStream und FileOutputStream
Die RandomAccessFile-Klasse
13.15 Praktische Java-Beispiele mit Datenströmen
13.16 Drucken unter Java
Drucken unter dem JDK 1.1
Drucken unter dem SDK 2
13.17 Zusammenfassung

Kapitel 14 Java-Sicherheit

14.1 Das Java-Sicherheitskonzept
Die Missbrauchsfähigkeiten einer Sprache
Viren
Unkontrollierte Systemzugriffe
Verifizierung des Bytecodes
Der Verifier
Der Classloader
Der Sicherheitsmanager
Digitale Unterschriften eines Applets und Verschlüsselung
in Java
Native Code
Weitere unerwünschte Aktionen
14.2 ActiveX-Sicherheitskonzept im Vergleich
Was sind ActiveX-Controls?
Sicherheitskonzept von ActiveX
14.3 Bekannte Sicherheitslücken der Java-Vergangenheit
Der Bytecode-Bug
Schwarze Witwen und der DNS-Bug
Der CLASSPATH-Bug
Weitere Bugs
Informationen zur Sicherheit
14.4 Zusammenfassung

Kapitel 15 Andere Sprachen in Verbindung mit Java

15.1 C/C++ - Unterschiede und Gemeinsamkeiten sowie die Einbindung
Unterschiede und Gemeinsamkeiten
15.2 Die Verbindung von Java und nativem Code
Konventioneller Einbau von C-Code in Java
Das Java Native Interface (JNI)
JNI-Grundlagen
Datenaustausch zwischen Java und C
Java-C++-Verbindung
Alternativen zum direkten Einbinden von nativen Methoden
15.3 Verbindung von Java zu JavaScript und anderen Scriptsprachen
Kleiner Exkurs zu JavaScript-Interna
Das Objektmodell von JavaScript
Verbindung von Java und JavaScript
Applets dynamisch schreiben
Verbindung mit weiteren Techniken
15.4 Zusammenfassung

Kapitel 16 Weiterführende Themen

16.1 Reflection und Serialization
Reflection
Serialization
16.2 JavaBeans
Wie passen JavaBeans in Java?
Beans erstellen
Spezielle Anwendungen von JavaBeans
Beans einer IDE bereitstellen
16.3 Verteilte Systeme - RMI, IDL und CORBA
Java IDL oder wie ist RMI in Bezug auf CORBA zu sehen?
Entwicklung einer CORBA-Anwendung in Java
16.4 Netzwerkzugriffe, Sockets und Servlets
Java-Servlets, JSP und SSI
Allgemeine Netzwerkzugriffe
Sockets
16.5 Datenbanken und JDBC
Was sind relationale Datenbanken?
Was ist SQL?
JDBC versus ODBC
Grundaufbau von JDBC und des JDBC-Managers
Woraus besteht das JDBC-API?
Die JDBC-Treiber
Schematischer Aufbau einer Datenbank-Applikation
Praktischer Einsatz von JDBC
16.6 Zusammenfassung

Anhang A

A.1 Ergänzungen zu den JDK-Tools
Erweiterte Basisprogramme
Internationalization Tools
Security Tools
Java IDL- und RMI-Tools
A.2 IDEs für Java
JCreator für Windows
Forte 2.0 for Java
JBuilder
Kawa

Anhang B

B.1 Das Java-1.3-API
B.2 Beschreibung der Pakete
java.applet
java.awt
java.awt.color
java.awt.datatransfer
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.bean.beancontext
java.io
java.lang
java.lang.ref
java.lang.reflect
java.math
java.net
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.util
java.util.jar
java.util.zip
javax.accessibility
javax.naming
javax.naming.directory
javax.naming.event, javax.naming.ldap und javax.naming.spi
javax.rmi und javax.rmi.CORBA
javax.sound.midi
javax.sound.midi.spi, javax.sound.sampled und javax.sound.sampled.spi
javax.swing & Co
javax.swing.event
javax.swing.undo
Die CORBA-Pakete
Nicht enthalten - das Servlets-API
B.3 Die veralteten Elemente des Java-API 1.3
Klassen (deprecated)
Interfaces (deprecated)
Exceptions (deprecated)
Felder (deprecated)
Methoden (deprecated)
Constructors (deprecated)
B.4 HTML-Elemente und -Attribute
HTML-Tags
Die HTML 4.0-Attribute
B.5 JavaScript- Token

Anhang C

C.1 JAR-Archive oder wie arbeiten Komprimierungstechnologien?
Komprimierungsverfahren und Programme
Der Huffman-Algorithmus
Selbstextrahierende Programme
Wie groß ist die Reduzierung der Datenmenge?
C.2 Wie funktionieren Verschlüsselungsverfahren?
Verschlüsselungs- bzw. Kryptographieprogramme
Einige Verschlüsselungsverfahren
PGP oder wie Java verschlüsselt
Die heutigen Standard-Algorithmen
Eine kleine Abschlussbemerkung zum Thema
C.3 Von der Dezimalrechnung abweichende Rechenarten
Binärrechnung
Oktalrechnung
Hexadezimalrechnung
C.4 Die Theorie des Zweierkomplements bei ganzen Zahlen
C.5 Farbangaben in Java und JavaScript
Die direkte Angabe eines Farbnamens
Die Farbangabe mittels RGB-Werten in Hexadezimalform
C.6 Erläuterung der Kurzschreibweisen von Operatoren
C.7 Java-Quellen im Internet

Anhang D

D.1 Neuerungen der Java-2-Plattform

Stichwortverzeichnis


© Copyright Markt+Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH
Elektronische Fassung des Titels: Java 2 Kompendium, ISBN: 3-8272-6039-6 Kapitel: inhalt.htm
Satz und HTML-Erstellung: reemers publishing services, Krefeld