Suchen und Finden
Service
Infos und Kontakt
Inhaltsverzeichnis
6
Vorwort
16
Danke
16
1 Einleitung
18
1.1 Geschichte von Java
18
1.2 Was ist Java?
19
1.3 Java SE Version 6
21
1.4 Download und Installation
21
1.5 Entwicklungsumgebung
21
1.5.1 IntelliJ IDEA
22
1.5.2 Eclipse
22
1.5.3 NetBeans
22
1.5.4 Texteditoren
22
1.6 Java-Tools
22
1.6.1 java
23
1.6.2 javac
23
1.6.3 Appletviewer
24
1.6.4 javadoc
24
1.6.5 jar
25
1.6.6 jdb
26
1.7 Fazit
26
2 Java? Java!
28
2.1 Anweisungen
28
2.2 Variablen
29
2.2.1 Variablen deklarieren
30
2.2.2 Konventionen
30
2.2.3 Mehrere Variablen vom gleichen Typ deklarieren
31
2.2.4 Zuweisen von initialen Werten
31
2.2.5 Lebensdauer und Sichtbarkeit von Variablen
31
2.3 Datentypen
32
2.3.1 Datentypobjekte
33
2.3.2 valueOf-Zuweisungen
33
2.3.3 Typkonvertierung
34
2.4 Konstanten und konstante Variablen
35
2.5 Kommentare
35
2.6 Ausdrücke und Operatoren
36
2.6.1 Arithmetische Operatoren
37
2.6.2 Relationale Operatoren
37
2.6.3 Logische Operatoren
38
2.6.4 Weitere Operatoren
39
2.6.5 Operator-Vorrangregeln
39
2.7 Bedingungen und Verzweigungen
40
2.7.1
40
2.7.2 Switch-Anweisung
41
2.8 Schleifen
43
2.8.1 for-Schleife
43
2.8.2 for-each-Schleife
44
2.8.3 while-Schleife
45
2.8.4 do-while-Schleife
45
2.8.5 break und continue
46
2.9 Methodendeklaration
48
2.9.1 Aufruf einer Methode
49
2.9.2 Parameter: by-reference oder by-value
49
2.10 Fazit
50
3 Objektorientierte Programmierung
52
3.1 Klassen und Objektinstanzen
53
3.1.1 Abstraktion
53
3.1.2 Kapselung
54
3.1.3 Wiederverwendbarkeit
55
3.2 Beziehungen zwischen Klassen
55
3.2.1 Spezialisierung
55
3.2.2 Komposition und Aggregation
57
3.2.3 Assoziation
57
3.3 Polymorphie
57
3.4 Definition von Klassen
59
3.4.1 Eigenschaften/Instanzvariablen
59
3.4.2 Getter und Setter
60
3.5 Erzeugen von Objektinstanzen
64
3.5.1 Instanz einer inneren Klasse erzeugen
64
3.6 Qualifizierung: Zugriff auf Methoden
65
3.7 Konstruktoren und Destruktoren
65
3.7.1 Konstruktor
66
3.7.2 Destruktor
67
3.8 Methodenüberladung
67
3.8.1 Konstruktorkaskadierung
70
3.8.2 Variable Argumente (VarArgs)
71
3.9 Zugriffsmodifizierer
73
3.9.1 Standardmodifizierer
74
3.9.2 public
74
3.9.3 protected
74
3.9.4 private
75
3.10 Statische Methoden und Variablen
76
3.11 Finale Klassen, Methoden und Variablen
78
3.12 Vererbung
79
3.12.1 Ableitung von einer Basisklasse
79
3.12.2 Polymorphie im Einsatz
80
3.12.3 Factory-Entwurfsmuster
82
3.13 Abstrakte Klassen und Methoden
85
3.13.1 Deklaration einer abstrakten Klasse
86
3.13.2 Implementieren der abstrakten Klasse
86
3.13.3 Überschreiben und Implementieren von Methoden einer abstrakten Klasse
87
3.13.4 Definition abstrakter Methoden
88
3.14 Interfaces
89
3.14.1 Ein Interface definieren
90
3.14.2 Implementieren eines Interface
91
3.14.3 Mehrere Interfaces implementieren
92
3.14.4 Interface-Ableitung
95
3.15 Lokale und anonyme Klassen
98
3.15.1 Lokale Klassen in Methoden
101
3.15.2 Anonyme Klassen
102
3.16 Aufzählungen
104
3.16.1 Eindeutig und typsicher
105
3.16.2 Enumerations-Member durchlaufen
106
3.17 Pakete
107
3.17.1 Pakete definieren
108
3.17.2 Pakete verwenden
108
3.17.3 Das import-Statement
109
3.17.4 Das import-Statement mit Platzhaltern
109
3.17.5 Namensraumkonflikte
110
3.18 Zusammenfassung
111
4 Listen
112
4.1 Array
112
4.1.1 Deklaration
112
4.1.2 Instanzierung
113
4.1.3 Zuweisung und Abruf von Werten
113
4.1.4 Mehrdimensionale Arrays
115
4.1.5 Vor- und Nachteile
116
4.2 ArrayList
116
4.2.1 Deklaration und Instanzierung
117
4.2.2 Zuweisen von Werten
118
4.2.3 Abrufen von Werten
120
4.2.4 Ersetzen von Werten
123
4.2.5 Löschen von Werten
124
4.2.6 Überprüfen, ob ein Element in der Liste existiert
124
4.2.7 Vor- und Nachteile der ArrayList
125
4.3 HashMap
125
4.3.1 Deklaration und Instanzierung
125
4.3.2 HashMap und Generics
126
4.3.3 Werte zuweisen
126
4.3.4 Abrufen von Werten
128
4.3.5 Abrufen aller Elemente einer HashMap
129
4.3.6 Löschen von Elementen
131
4.3.7 Überprüfen, ob bestimmte Schlüssel oder Werte in der Liste existieren
132
4.4 Properties
136
4.4.1 Deklaration und Instanzierung
136
4.4.2 Zuweisen und Abrufen von Werten
136
4.4.3 Speichern der Werte in Textdateien
138
4.4.4 Speichern der Werte in XML-Dateien
139
4.4.5 Laden der Werte aus Textdateien
140
4.4.6 Laden der Werte aus XML-Dateien
141
4.4.7 Vor- und Nachteile der Properties-Klasse
142
4.5 Weitere Listen
143
4.5.1 HashSet
143
4.5.2 TreeSet
143
4.5.3 LinkedList
143
4.5.4 TreeMap
143
4.5.5 LinkedHashMap
143
4.5.6 Vector
143
4.6 Wichtige Interfaces
144
4.6.1 Enumeration
144
4.6.2 Iterator
145
4.6.3 Collection
146
4.6.4 Map
148
4.6.5 List
149
4.6.6 Set
150
4.7 Generics
152
4.7.1 Was sind Generics?
152
4.7.2 Was bringen Generics?
152
4.7.3 Wie werden die Datentypen angegeben?
152
4.7.4 Müssen Generics zwingend deklariert werden?
153
4.7.5 Generics in eigenen Klassen und Methoden verwenden
153
4.7.6 Generische Typen einschränken
154
4.7.7 Generics und Performance
156
4.8 Zusammenfassung
156
5 Ausnahmen
158
5.1 Ausnahmen werfen
158
5.2 Ausnahmen abfangen
160
5.2.1 Mehrere Ausnahmen behandeln
161
5.2.2 Alle Ausnahmen auf einen Schlag abfangen
163
5.2.3 Das finally-Schlüsselwort
163
5.3 Eigene Ausnahmen definieren
165
5.4 Strategien beim Einsatz von Ausnahmen
168
5.4.1 Behandeln Sie Ausnahmen so lokal wie möglich
168
5.4.2 Behandeln Sie nur Ausnahmen, für die Sie zuständig sind
169
5.4.3 Verwenden Sie spezifische Ausnahmetypen
169
5.5 Fazit
169
6 Threads
172
6.1 Einen Thread erstellen
172
6.1.1 Eine threadingfähige Klasse
172
6.1.2 Einen Thread starten
174
6.2 Timer statt Thread
175
6.3 Priorität von Threads setzen
178
6.4 Threads beenden
180
6.4.1 Verwendung von interrupt() zum Abbrechen eines Thread
180
6.4.2 Verwendung einer eigenen Thread-Ableitung
181
6.4.3 StoppableThread statt Thread als Super- Klasse
182
6.5 Zugriff auf den aktuellen Thread
184
6.6 Ermitteln aller laufenden Threads
184
6.7 Organisation von Threads in Thread- Gruppen
186
6.8 Synchronisierung von Threads
189
6.8.1 Monitor
190
6.8.2 wait() und notify()
194
6.9 Fazit
198
7 Prozesse und Systemumgebung
200
7.1 Starten einer externen Applikation
200
7.2 Einlesen der Rückgabe eines Prozesses
202
7.3 Freien Speicher ermitteln
205
7.3.1 Initialen Arbeitsspeicher festlegen
206
7.4 Garbage Collector erzwingen
207
7.5 Umgebungsinformationen abrufen
208
7.6 Betriebssystem und Java-Version bestimmen
210
7.7 Informationen zum aktuellen Nutzer ermitteln
211
7.8 Zugesicherte Umgebungsvariablen
212
7.9 System-Umgebungsinformationen abrufen
213
7.10 Zusammenfassung
215
8 Arbeiten mit der Kommandozeile
216
8.1 Aufbau einer Kommandozeilenapplikation
216
8.2 Parameter einlesen
218
8.2.1 Feste Parameterfolge mit Standardwerten
219
8.2.2
223
8.2.3 Benannte Parameter
226
8.2.4 Welcher Parametertyp für welchen Zweck?
232
8.2.5 Das CLI-Paket der Apache Foundation
232
8.2.6 Commons-cli oder eigene benannte Parameter?
240
8.3 Einlesen von Informationen
240
8.4 Ausgabe von Informationen
245
8.4.1 Einfache Ausgabe
245
8.4.2 Überschreiben der Methode toString()
245
8.4.3 Sichere Ausgabe von Zeilenumbrüchen
246
8.4.4 Umleiten der Ausgabe in eine Datei
248
8.5 Zusammenfassung
249
9 Swing
252
9.1 Was ist Swing?
252
9.2 Swing oder JFC?
253
9.3 Swing-Basics
253
9.3.1 Komponenten
253
9.3.2 Root-Container
253
9.3.3 Verwendung von JFrame
254
9.3.4 Basisklasse für alle folgenden Beispiele
260
9.4 Mehrzweck-Container
261
9.4.1 JPanel
261
9.4.2 JScrollPane
262
9.4.3 JSplitPane
264
9.4.4 JTabbedPane
267
9.4.5 JToolBar
268
9.5 Komponenten
270
9.5.1 JLabel
270
9.5.2 JButton
273
9.5.3 JCheckBox
282
9.5.4 JRadioButton
286
9.5.5 JComboBox
290
9.5.6 JTextField
295
9.5.7 JPasswordField
303
9.5.8 JFormattedTextField
304
9.5.9 JTextArea
310
9.5.10 JEditorPane
314
9.5.11 JFileChooser
319
9.5.12 JSlider
323
9.5.13 JProgressBar
326
9.6 Menüs mit JMenu
329
9.6.1 Erzeugen von Menüs
330
9.6.2 Beenden einer Swing-Applikation
333
9.6.3 Anzeigen anderer Menüelemente
334
9.6.4 CheckBoxen in Menüs verwenden
336
9.6.5 JPopupMenu
338
9.7 Layout-Manager
343
9.7.1 FlowLayout
343
9.7.2 GridLayout
344
9.7.3 BorderLayout
344
9.7.4 GridBagLayout
346
9.8 Standarddialoge
350
9.8.1 Message-Dialog
350
9.8.2 Confirm-Dialog
352
9.8.3 Input-Dialog
354
9.8.4 Schließverhalten von Input-Dialogen beeinflussen
356
9.9 Fazit
359
10 Applets
362
10.1 Ein einfaches Applet
362
10.1.1 Anzeigen eines Applet über den Browser
363
10.1.2 Anzeige eines Applet per Applet-Viewer
364
10.2 Lebenszyklus eines Applet
365
10.2.1 init()
365
10.2.2 start()
366
10.2.3 stop()
366
10.2.4 destroy()
366
10.3 Elemente des Benutzer-Interface
366
10.3.1 java.awt.Button
367
10.3.2 java.awt.CheckBox
368
10.3.3 java.awt.TextArea
370
10.3.4 java.awt.TextField
372
10.3.5 Menu
374
10.3.6 java.awt.List
378
10.3.7 java.awt.Choice
381
10.3.8 Komponenten, LayoutManager, Applets ...?
383
10.4 paint() und update() – Grafik mit dem AWT
383
10.4.1 Grafische Elemente zeichnen
383
10.4.2 Text direkt ausgeben
386
10.4.3 Bilder laden
389
10.5 Threading
390
10.6 Was Applets dürfen und was nicht
394
10.7 Interaktion mit umgebenden Elementen
395
10.7.1 Übergabe von Parametern an das Applet
395
10.7.2 Das <applet>-Tag und seine Parameter
398
10.7.3 Beeinflussung des Statustextes des Fensters
399
10.7.4 Kommunikation mit anderen Applets in derselben Seite
400
10.7.5 Redirects im Browser
404
10.8 Applet – JApplet?
406
10.9 Fazit
407
11 Streams und Dateibehandlung
408
11.1 Streams und zugrunde liegende Prinzipien
408
11.1.1 Byte-Streams
409
11.1.2 Character-Streams
411
11.1.3 Character- oder Byte-Streams?
413
11.1.4 Brückenklassen
413
11.2 Input- und OutputStreams
414
11.2.1 ByteArrayInputStream und ByteArrayOutputStream
415
11.2.2 FileInputStream und FileOutputStream
415
11.2.3 FilterInputStream und FilterOutputStream
418
11.2.4 BufferedInputStream und BufferedOutputStream
418
11.2.5 DataInputStream und DataOutputStream
419
11.2.6 PrintStream
424
11.3 Writer und Reader
425
11.3.1 FileReader und FileWriter
426
11.3.2 BufferedReader und BufferedWriter
428
11.4 RandomAccessFile
431
11.5 File
438
11.5.1 Pfadbestandteile ermitteln
439
11.5.2 Detaillierte Informationen über die File- Instanz
440
11.5.3 Dateiaktionen
440
11.5.4 Verzeichnisaktionen
441
11.6 Fazit
443
12 JDBC
446
12.1 Das JDBC-Prinzip
446
12.2 MySQL, PostGre-SQL, Cloudscape, Oracle ...?
447
12.2.1 MySQL, der JDBC-Treiber und die Admin- Werkzeuge
448
12.3 Verbindung herstellen
452
12.3.1 Treiber laden
452
12.3.2 Verbindungsparameter übergeben
452
12.4 Datenbankabfragen
453
12.4.1 Daten einfügen oder ändern
454
12.4.2 Abrufen von Daten
456
12.5 PreparedStatement
459
12.5.1 Datensätze einfügen, ändern oder löschen
460
12.5.2 Abrufen von Daten
462
12.6 Tipps und Tricks
463
12.6.1 Sichern Sie Ihre Datenbank!
463
12.6.2 Verwenden Sie PreparedStatements!
464
12.6.3 Geben Sie bei SELECT-Statements immer alle Spalten an!
464
12.6.4 Kapseln Sie Datenbankzugriffe in Datenklassen
465
12.6.5 Auslagerung der ConnectionStrings und der Klassennamen
473
12.7 Hibernate und O/R-Mapping- Mechanismen verwenden
474
12.7.1 Hibernate
475
12.7.2 Installation von Hibernate
476
12.7.3 Mappings
476
12.7.4 Konfiguration
479
12.7.5 Konfigurationsdatei für MySQL
479
12.7.6 Arbeiten mit Hibernate
481
12.7.7 HibernateUtil-Hilfsklasse
482
12.7.8 Implementieren des GuestbookDAO
483
12.7.9 Änderung der GuestbookDAOFactory- Klasse
485
12.8 Fazit
485
13 Netzwerk
488
13.1 Auflösung eines Hostnamens
488
13.2 Netzwerkadapter auflisten
490
13.3 URL
491
13.3.1 Analyse eines URL
493
13.3.2 Verarbeitung des referenzierten Inhalts
494
13.3.3 URLConnection
497
13.4 Client/Server-Kommunikation
498
13.4.1 Sockets
498
13.5 E-Mails senden
505
13.5.1 Was ist Java Mail?
505
13.5.2 Installation von Java Mail
506
13.5.3 Versenden von E-Mails
506
13.6 Fazit
510
J2SE Software License
512
Stichwortverzeichnis
518
Mehr eBooks vom gleichen Verlag
Professionelle Websites, von: Stefan Münz, Preis: 39,95 EUR
C# 2008 Codebook (C Sharp), von: Jürgen Bayer, Preis: 59,95 EUR
Maven 2 - Eine Einführung, aktuell zur Version 2.0.9, von: Kai Uwe Bachmann, Preis: 49,80 EUR
JQuery - Das neue JavaScript-Framework für interaktives Design, von: Ralph Steyer, Preis: 34,80 EUR
Linux-Kernel-Programmierung, von: Michael Beck u.a., Preis: 24,95 EUR
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion
























