Suchen und Finden
Inhalt
6
1 Das Fundament von Java
16
1.1 DIE SPRACHE JAVA
17
1.1.1 Warum Java?
17
1.2 OBJEKTORIENTIERTE PROGRAMMIERUNG
25
1.2.1 Objekt
25
1.2.2 Methode
25
1.2.3 Kapselung von Eigenschaften
26
1.2.4 Nachrichten
27
1.2.5 Klasse
27
1.2.6 Vererbung
28
1.2.7 Überschreiben von Methoden und Eigenschaften
29
1.2.8 Überladung von Methoden
30
1.2.9 Mehrfachvererbung
31
1.3 DIE INSTALLATION
32
1.3 DIE INSTALLATION JAVA
32
1.3.1 Installation von J2SE
32
1.3.2 Installation des JDK
33
1.3.3 Installation der Dokumentation des JDK
34
1.3.4 Installation der Quelltexte
35
1.3.5 Java-Software entwickeln
35
1.3.6 Entwicklungswerkzeuge
36
2 Grundlagen von Java
38
2.1 GRUNDLEGENDE PROGRAMMIERSTRUKTUREN
39
2.1.1 Das erste Java-Programm
39
2.1.2 Kommentare
41
2.1.3 Bezeichner
43
2.1.4 Datentypen
44
2.1.5 Variablen
48
2.1.6 Konstanten
49
2.1.7 Arrays
50
2.1.8 Speichermanagement
53
2.1.9 Typkonvertierungen
54
2.1.10 Ausdrücke
56
2.1.11 Anweisungen
65
2.2 OBJEKTORIENTIERTE PROGRAMMIERSTRUKTUREN
81
2.2.1 Klassen
81
2.2.2 Eigenschaften
82
2.2.3 Objekte
82
2.2.4 Methoden
83
2.2.5 Die this-Referenz
88
2.2.6 Konstruktoren
89
2.2.7 Destruktoren
90
2.2.8 Pakete
91
2.2.9 Modifier
97
2.2.10 Statische Strukturen
103
2.2.11 Vererbung
106
2.2.12 Initialisierungsprozeß eines Objekts
111
2.2.13 Aufruf überschriebener Methoden aus Konstruktoren
113
2.2.14 Abstrakte Klassen
114
2.2.15 Schnittstellen (Interfaces)
116
2.2.16 Innere und anonyme Klassen
120
2.3 EXCEPTIONS
124
2.3.1 Abfangen und Behandeln von Exceptions
125
2.3.2 Die Klassifizierung von Exceptions
127
2.3.3 Das Ausnahmeobjekt verwenden
128
2.3.4 Mehr als eine Ausnahme abfangen
129
2.3.5 Die finally-Klausel
131
2.3.6 Weiterleiten von Exceptions
132
2.3.7 Struktur der Ausnahmebehandlung
133
2.3.8 Eigene Exception-Typen definieren
134
2.3.9 Auslösen einer Exception
135
3 Weiterführende Spracheigenschaften
138
3.1 ZEICHENKETTEN
139
3.1.1 Die Klasse String
139
3.1.2 StringBuffer und StringBuilder
150
3.1.3 Die Klasse StringTokenizer
152
3.2 HILFSKLASSEN
155
3.2.1 Wrapper-Klassen
155
3.2.2 Mathematische Klassen
162
3.2.3 Die Klasse Arrays
170
3.2.4 Die Klasse System
172
3.2.5 Die Klasse Runtime
180
3.2.6 Die Klassen Date, Calendar und GregorianCalendar
184
3.3 EVENTS
188
3.3.1 Ereignisverarbeitung in Java
189
3.3.2 Ereignistypen
191
3.3.3 Ereignisempfänger
191
3.3.4 Ereignisquellen
191
3.3.5 AWT-Ereignisse
192
3.3.6 Implementierung von Ereignisempfängern
202
3.3.7 Eigene Ereignisse definieren und auslösen
211
3.4 COLLECTIONS
216
3.4.2 Java-Implementierungen der Mengenklassen
218
3.4.3 Synchronisation von Collections
226
3.4.4 Das Interface Iterator zum Durchlaufen von Collections
226
3.4.5 Suchen, Sortieren und andere Algorithmen
227
3.5 ENTWURFSMUSTER
232
3.5.1 Singleton
233
3.5.2 Immutable
235
3.5.3 Factory
237
3.5.4 Iterator
242
3.5.5 Delegate
244
4 Erweiterte Sprachkonzepte
248
4.1 AUTOBOXING UND UNBOXING
249
4.1.1 Regeln für das Autoboxing beziehungsweise Unboxing
251
4.2 STATIC IMPORTS
256
4.2.1 Statische Importe
257
4.2.2 Gefahren und Nachteile statischer Importe
259
4.3 TYPSICHERE AUFZÄHLUNGEN
261
4.3.1 Aufzählungen mit enum
262
4.3.2 Eigenschaften und Struktur von enum-Aufzählungen
264
4.3.3 Aufzählungen innerhalb anderer Strukturen erzeugen
265
4.3.4 Iteration über Aufzählungen
266
4.3.5 enum-Aufzählungen in switch-Anweisungen
266
4.3.6 Mengen von Aufzählungen
268
4.3.7 Benutzerdefinierte Elemente in enums
270
4.3.8 Schnittstellen implementieren in Aufzählungen
271
4.3.9 Aufzählungswertbezogene Klassenrümpfe
272
4.4 VARIABLE PARAMETERLISTEN
274
4.4.1 Variable Parameterlisten als erweitertes Sprachkonzept
276
4.4.2 Einschränkungen von VarArgs-Definitionen
277
4.5 METADATEN
277
4.5.1 Deklaration von Annotationstypen
278
4.5.2 Annotationsverarbeitung
281
4.6 GENERICS
291
4.6.1 Definition parametrisierbarer Typen
295
4.6.2 Untertypisierung
300
4.6.3 Bounds
300
4.6.4 Generische Methoden und Konstruktoren
304
4.6.5 Wildcards
306
4.6.6 Java Generics kompilieren
310
4.6.7 Besonderheiten von Java Generics
315
4.6.8 Generischen Quellcode mit nicht generischem Quellcode verknüpfen
320
5 Datenströme und Datenpersistenz
324
5.1 EIN- UND AUSGABE VON DATEN
325
5.1.2 Stream-Klassen
326
5.1.3 Wahlfreier Zugriff auf Dateien
334
5.1.4 Einfache Datenein- und -ausgabe mit der Klasse System
336
5.2.1 Objekte serialisieren und deserialisieren
338
5.2.2 Der Serialisierungs-Mechanismus
340
5.2.3 Erweiterte Eigenschaften der Serialisierung
340
5.3 NEW I/O
342
5.3.1 Puffer
343
5.3.2 Channels
346
5.3.3 Dateisperren
347
5.3.4 File Memory Mapping
347
5.3.5 Scattering und Gathering
348
5.3.6 Non-blocking und Multiplexed I/O
349
5.3.7 Zeichensätze
351
5.4 DATENBANKEN MIT JDBC
352
5.4.1 Die Architektur von JDBC
353
5.4.2 Kommunikation via JDBC
356
5.4.3 Beispieldatenbank
362
5.4.4 Weiterführende JDBC-Eigenschaften
370
6 GUI-Programmierung
376
6.1 SWING
377
6.1.1 Das Prinzip von Swing
377
6.1.2 Komponenten der Bibliothek Swing
381
6.2 DRAG&DROP
459
6.2.1 Drag&Drop-Unterstützung in Swing
459
6.2.2 TransferHandler für die Datenübertragung
461
6.2.3 Datei-Drag&Drop
465
7 Netzwerk und verteilte Systeme
470
7.1 TCP-/UDP-SOCKETS
471
7.1.1 Das erste Netzwerkprogramm
472
7.1.2 Der Client lernt sprechen
473
7.1.3 Ein erster Internet-Server...
476
7.1.4 Quasseln im Netz – der Chatserver
479
7.1.5 UDP-Sockets
485
7.1.6 Die Klassen URL und URLConnection
489
7.1.7 Die Klasse URI
492
7.2 RMI – VERTEILTE PROGRAMMIERUNG IN JAVA
493
7.2.1 Entwurf einer verteilten Applikation mit Hilfe von RMI
494
7.2.2 Verteilte Beispielapplikation
495
7.2.3 Dynamisches Generieren von Stubs
504
7.2.4 Skalierung von entfernten Objekten
505
7.2.5 Weitere Eigenschaften von RMI
510
7.3 EVENT HANDLING IN VERTEILTEN SYSTEMEN
511
7.3.1 Fallbeispiel Value Change
511
7.3.2 Implementierung von Listenern in verteilten Systemen
517
7.4 SERVLETS – DIE ALTERNATIVE ZU CGI
526
7.4.1 Vorteile von Servlets gegenüber CGI-Skripten
526
7.4.2 Servlets programmieren
526
7.4.3 Kommunikation leichtgemacht – der Java-Chat
530
7.4.4 Cookies – Informative Krümel
536
7.4.5 Sessions – Behalten Sie Ihre Kunden im Auge
541
7.5 JAVA SERVER PAGES
547
7.5.1 Wann Servlets, wann JSPs?
548
7.5.2 Die Struktur von JSPs
549
7.5.3 JSPs laden
550
7.5.4 JSP-Elemente
551
7.5.5 Scopes
567
7.5.6 Implizite Objekte
567
7.5.7 Expression Language (EL)
568
7.5.8 Tag-Extensions
569
7.6 JAVA NAMING AND DIRECTORY INTERFACE (JNDI)
576
7.6.1 Die Architektur von JNDI
577
7.6.2 Programmieren mit der JNDI-API
580
7.6.3 Zusammenfassung
585
7.7 APPLETS
585
7.7.1 Kompatibilitätsprobleme
586
7.7.2 Das HelloWorld-Applet
586
7.7.3 Applets und Applikationen
588
7.7.4 Das APPLET-Tag
589
7.7.5 Übergeben von Parametern an Applets
590
7.7.6 Die Klasse Applet
591
7.7.7 Sicherheitsbeschränkungen
595
8 Konkurrierende Programmierung
596
8.1 MULTITHREADING
597
8.1.1 Die Klasse Thread
598
8.1.2 Die Schnittstelle Runnable
606
8.1.3 Threadgruppen
611
8.1.4 Die Klassen Timer und TimerTask
614
8.2 SYNCHRONISATION
616
8.2.1 Monitore
618
8.2.2 Die Methoden wait() und notify()
623
8.2.3 Die Klassen PipedInputStream und PipedOutputStream
626
8.3 CONCURRENCY
628
8.3.1 Das Interface Executor
628
8.3.2 Semaphore
629
8.3.3 Locks
630
8.3.4 CyclicBarrier
632
9 Weitere Java-Klassenbibliotheken
634
9.1 SICHERHEIT IN JAVA
635
9.1.1 Das Sandbox-Modell
635
9.1.2 Das Security-API
636
9.1.3 Der Security Manager
638
9.1.4 Der Access Controller
641
9.1.5 Beispielanwendung
650
9.2 PREFERENCES
654
9.2.1 Die Architektur des Preferences API
655
9.2.2 Die Klasse Preferences
655
9.2.3 Beispielanwendung
658
9.3 REGULÄRE AUSDRÜCKE
661
9.3.1 Die Syntax regulärer Ausdrücke
662
9.3.2 Die Klasse Pattern
664
9.3.3 Die Klasse Matcher
665
9.3.4 Redundante Methoden in der Klasse String
666
9.3.5 Beispielszenarios für reguläre Ausdrücke
666
9.4 DRUCKEN MIT DEM PRINTSERVICE-API
670
9.4.1 Einfache Dokumente drucken
670
9.4.2 Drucken in eine Postscriptdatei
673
9.4.3 Drucken von frei formatierten Dokumenten
675
9.5 SOUND IN JAVA
677
9.5.1 JavaMediaFramework versus Java Sound
677
9.5.2 Wie funktioniert Audio-Sampling?
678
9.5.3 Einbindung von Audiodateien mit der Klasse AudioClip
679
9.5.4 Aufnahme und Wiedergabe mit dem Java-Sound-API
681
9.5.5 Achtung, Aufnahme!
685
9.5.6 MIDI
688
9.6 DAS REFLECTION-API
691
9.6.1 Die Basisklassen Object und Class
692
9.6.2 Modifier analysieren
696
9.6.3 Dynamisches Laden und Objekterzeugung von Klassen
697
9.6.4 Dynamische Methodenaufrufe
699
9.7 LOGGING
709
9.7.1 Einfaches Logging
710
9.7.2 Erweitertes Logging
711
9.7.3 Anpassen der Logging-Konfiguration
714
9.7.4 Handler
715
9.7.5 Filter definieren
721
9.7.6 Formatter definieren
722
9.8 JAVA NATIVE INTERFACE
723
9.8.1 Erstellen von Java-Klassen mit nativen Methoden
723
9.8.2 Mapping zwischen Java und nativen Datentypen
727
9.8.3 Zugriff auf Java-Objekte in nativen Methoden
728
10 Grafikprogrammierung
738
10.1 GRAFIK MIT DEM 2D-API
739
10.1.1 Koordinatensysteme
739
10.1.2 Einfache Formen zeichnen
740
10.1.3 Verwenden komplexerer 2D-API-Zeichenfunktionen
742
10.1.4 Figur + Figur = Constructive Area Geometry
744
10.1.5 Komplexere Zeichenobjekte – Kurven und General Paths
746
10.1.6 Transformationen
749
10.1.7 Fonts
751
10.1.8 Linien zeichnen – das Interface »Stroke«
753
10.1.9 Bilder, Farbverläufe – Formen füllen
756
10.1.10 Bildbearbeitung
761
10.1.11 Transparenz und die Klasse AlphaComposite
763
10.1.12 Bildbearbeitung mit der Klasse BufferedImage
766
10.1.13 Filter
768
10.1.14 Animationen in Java
773
10.1.15 Clipping
775
10.2 DREIDIMENSIONALE GRAFIKEN MIT DEM 3D-API
777
10.2.1 Licht aus – Spot an! Noch mehr Beleuchtung
781
10.2.2 Weitere Objekte – die Interfaces Shape3D und Primitive
782
10.2.3 Das Aussehen von Objekten festlegen – Appearance
785
10.2.4 Bewegung kommt ins Spiel: Transformation und Behavior
790
10.2.5 Die Klasse Interpolator
799
10.2.6 Interaktion
802
Anhang A Werkzeuge des JDK
806
Literaturverzeichnis
828
Stichwortverzeichnis
830
Mehr eBooks bei www.ciando.com
0
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.