Schlagwörter
Hand-Buch Anleitung Einführung Tutorial Grundlagen lernen Ideen Tipps Workshop Ausbildung Rheinwerk-Verlag Galileo Computing, Eclipse, NetBeans, xml, Performanz, Lambda Expressions, Java-Beans 9 8 2017, JDBC, JDK, JSON, Objektorientiert programmieren lernen OOP, Referenz, Datenbanken
Inhaltsverzeichnis
Vorwort ... 31
1. Java ist auch eine Sprache ... 47
1.1 ... Historischer Hintergrund ... 47
1.2 ... Warum Java gut ist -- die zentralen Eigenschaften ... 49
1.3 ... Java-Plattformen: Java SE, Java EE, Java ME, Java Card ... 69
1.4 ... Die Installation der Java Platform, Standard Edition (Java SE) ... 73
1.5 ... Das erste Programm compilieren und testen ... 84
1.6 ... Entwicklungsumgebungen im Allgemeinen ... 88
1.7 ... Eclipse im Speziellen ... 91
1.8 ... Zum Weiterlesen ... 98
2. Imperative Sprachkonzepte ... 99
2.1 ... Elemente der Programmiersprache Java ... 99
2.2 ... Von der Klasse zur Anweisung ... 107
2.3 ... Datentypen, Typisierung, Variablen und Zuweisungen ... 118
2.4 ... Ausdrücke, Operanden und Operatoren ... 135
2.5 ... Bedingte Anweisungen oder Fallunterscheidungen ... 159
2.6 ... Immer das Gleiche mit den Schleifen ... 174
2.7 ... Methoden einer Klasse ... 191
2.8 ... Zum Weiterlesen ... 218
3. Klassen und Objekte ... 219
3.1 ... Objektorientierte Programmierung (OOP) ... 219
3.2 ... Eigenschaften einer Klasse ... 221
3.3 ... Natürlich modellieren mit der UML (Unified Modeling Language) * ... 222
3.4 ... Neue Objekte erzeugen ... 226
3.5 ... ZZZZZnake ... 238
3.6 ... Pakete schnüren, Imports und Kompilationseinheiten ... 241
3.7 ... Mit Referenzen arbeiten, Identität und Gleichheit (Gleichwertigkeit) ... 248
3.8 ... Arrays ... 260
3.9 ... Der Einstiegspunkt für das Laufzeitsystem: main(...) ... 302
3.10 ... Zum Weiterlesen ... 306
4. Der Umgang mit Zeichenketten ... 307
4.1 ... Von ASCII über ISO-8859-1 zu Unicode ... 307
4.2 ... Die Character-Klasse ... 316
4.3 ... Zeichenfolgen ... 321
4.4 ... Die Klasse String und ihre Methoden ... 323
4.5 ... Veränderbare Zeichenketten mit StringBuilder und StringBuffer ... 348
4.6 ... CharSequence als Basistyp ... 359
4.7 ... Konvertieren zwischen Primitiven und Strings ... 361
4.8 ... Strings zusammenhängen (konkatenieren) ... 370
4.9 ... Zerlegen von Zeichenketten ... 373
4.10 ... Ausgaben formatieren ... 378
4.11 ... Zum Weiterlesen ... 384
5. Eigene Klassen schreiben ... 385
5.1 ... Eigene Klassen mit Eigenschaften deklarieren ... 385
5.2 ... Privatsphäre und Sichtbarkeit ... 396
5.3 ... Eine für alle -- statische Methode und statische Attribute ... 406
5.4 ... Konstanten und Aufzählungen ... 413
5.5 ... Objekte anlegen und zerstören ... 421
5.6 ... Klassen- und Objektinitialisierung * ... 433
5.7 ... Zum Weiterlesen ... 443
6. Objektorientierte Beziehungsfragen ... 445
6.1 ... Assoziationen zwischen Objekten ... 445
6.2 ... Vererbung ... 451
6.3 ... Typen in Hierarchien ... 462
6.4 ... Methoden überschreiben ... 468
6.5 ... Drum prüfe, wer sich dynamisch bindet ... 479
6.6 ... Abstrakte Klassen und abstrakte Methoden ... 487
6.7 ... Schnittstellen ... 495
6.8 ... Zum Weiterlesen ... 534
7. Ausnahmen müssen sein ... 535
7.1 ... Problembereiche einzäunen ... 535
7.2 ... Die Klassenhierarchie der Fehler ... 550
7.3 ... RuntimeException muss nicht aufgefangen werden ... 560
7.4 ... Harte Fehler -- Error * ... 561
7.5 ... Auslösen eigener Exceptions ... 562
7.6 ... Automatisches Ressourcen-Management (try mit Ressourcen) ... 582
7.7 ... Besonderheiten bei der Ausnahmebehandlung * ... 592
7.8 ... Assertions * ... 597
7.9 ... Zum Weiterlesen ... 601
8. Äußere.innere Typen ... 603
8.1 ... Geschachtelte (innere) Klassen, Schnittstellen, Aufzählungen ... 603
8.2 ... Statische innere Klassen und Schnittstellen ... 604
8.3 ... Mitglieds- oder Elementklassen ... 606
8.4 ... Lokale Klassen ... 611
8.5 ... Anonyme innere Klassen ... 613
8.6 ... Zugriff auf lokale Variablen aus lokalen inneren und anonymen Klassen * ... 617
8.7 ... this in Unterklassen * ... 618
8.8 ... Zum Weiterlesen ... 620
9. Besondere Typen der Java SE ... 621
9.1 ... Object ist die Mutter aller Klassen ... 622
9.2 ... Schwache Referenzen und Cleaner ... 647
9.3 ... Die Utility-Klasse java.util.Objects ... 648
9.4 ... Vergleichen von Objekten und Ordnung herstellen ... 652
9.5 ... Wrapper-Klassen und Autoboxing ... 660
9.6 ... Iterator, Iterable * ... 680
9.7 ... Die Spezial-Oberklasse Enum ... 687
9.8 ... Annotationen in der Java SE ... 697
9.9 ... Zum Weiterlesen ... 703
10. Generics ... 705
10.1 ... Einführung in Java Generics ... 705
10.2 ... Umsetzen der Generics, Typlöschung und Raw-Types ... 721
10.3 ... Einschränken der Typen über Bounds ... 731
10.4 ... Typparameter in der throws-Klausel * ... 734
10.5 ... Generics und Vererbung, Invarianz ... 737
10.6 ... Konsequenzen der Typlöschung: Typ-Token, Arrays und Brücken * ... 751
10.7 ... Zum Weiterlesen ... 761
11. Lambda-Ausdrücke und funktionale Programmierung ... 763
11.1 ... Code = Daten ... 763
11.2 ... Funktionale Schnittstellen und Lambda-Ausdrücke im Detail ... 766
11.3 ... Methodenreferenz ... 786
11.4 ... Konstruktorreferenz ... 790
11.5 ... Implementierung von Lambda-Ausdrücken * ... 793
11.6 ... Funktionale Programmierung mit Java ... 794
11.7 ... Funktionale Schnittstelle aus dem java.util.function-Paket ... 798
11.8 ... Optional ist keine Nullnummer ... 813
11.9 ... Was ist jetzt so funktional? ... 824
11.10 ... Zum Weiterlesen ... 826
12. Architektur, Design und angewandte Objektorientierung ... 829
12.1 ... Architektur, Design und Implementierung ... 829
12.2 ... Design-Pattern (Entwurfsmuster) ... 830
12.3 ... Zum Weiterlesen ... 839
13. Komponenten, JavaBeans und Module ... 841
13.1 ... JavaBeans ... 841
13.2 ... JavaFX Properties ... 850
13.3 ... Klassenlader (Class Loader) und Modul-/Klassenpfad ... 864
13.4 ... Module entwickeln und einbinden ... 869
13.5 ... Zum Weiterlesen ... 885
14. Die Klassenbibliothek ... 887
14.1 ... Die Java-Klassenphilosophie ... 887
14.2 ... Die Klasse Class ... 895
14.3 ... Metadaten der Typen mit dem Class-Objekt ... 898
14.4 ... Die Utility-Klassen System und Properties ... 909
14.5 ... Sprachen der Länder ... 919
14.6 ... Wichtige Datum-Klassen im Überblick ... 923
14.7 ... Date-Time-API ... 925
14.8 ... Logging mit java.util.logging ... 934
14.9 ... Maven: Build-Management und Abhängigkeiten auflösen ... 941
14.10 ... Zum Weiterlesen ... 945
15. Einführung in die nebenläufige Programmierung ... 947
15.1 ... Nebenläufigkeit und Parallelität ... 947
15.2 ... Threads erzeugen ... 951
15.3 ... Thread-Eigenschaften und Zustände ... 957
15.4 ... Der Ausführer (Executor) kommt ... 969
15.5 ... Zum Weiterlesen ... 981
16. Einführung in Datenstrukturen und Algorithmen ... 983
16.1 ... Listen ... 983
16.2 ... Mengen (Sets) ... 1000
16.3 ... Assoziative Speicher ... 1009
16.4 ... Immutable Datenstrukturen ... 1033
16.5 ... Stream-API ... 1043
16.6 ... Zum Weiterlesen ... 1067
17. Einführung in grafische Oberflächen ... 1069
17.1 ... GUI-Frameworks ... 1069
17.2 ... Deklarative und programmierte Oberflächen ... 1073
17.3 ... GUI-Builder ... 1075
17.4 ... Aller Swing-Anfang -- Fenster zur Welt ... 1076
17.5 ... Es tut sich was -- Ereignisse beim AWT ... 1084
17.6 ... Schaltflächen ... 1097
17.7 ... Textkomponenten ... 1103
17.8 ... Grundlegendes zum Zeichnen ... 1114
17.9 ... Zum Weiterlesen ... 1120
18. Einführung in Dateien und Datenströme ... 1121
18.1 ... Alte und neue Welt in java.io und java.nio ... 1121
18.2 ... Dateisysteme und Pfade ... 1123
18.3 ... Dateien mit wahlfreiem Zugriff ... 1134
18.4 ... Basisklassen für die Ein-/Ausgabe ... 1139
18.5 ... Lesen aus Dateien und Schreiben in Dateien ... 1152
18.6 ... Vermittler zwischen Byte-Streams und Unicode-Strömen ... 1158
18.7 ... Zum Weiterlesen ... 1161
19. Einführung ins Datenbankmanagement mit JDBC ... 1163
19.1 ... Relationale Datenbanken und Datenbankmanagementsysteme ... 1163
19.2 ... JDBC und Datenbanktreiber ... 1169
19.3 ... Eine Beispielabfrage ... 1171
19.4 ... Zum Weiterlesen ... 1173
20. Einführung in ... 1175
20.1 ... Auszeichnungssprachen ... 1175
20.2 ... Eigenschaften von XML-Dokumenten ... 1176
20.3 ... Die Java-APIs für XML ... 1188
20.4 ... Java Architecture for XML Binding (JAXB) ... 1191
20.5 ... Zum Weiterlesen ... 1214
21. Bits und Bytes, Mathematisches und Geld ... 1217
21.1 ... Bits und Bytes * ... 1217
21.2 ... Fließkomma-Arithmetik in Java ... 1231
21.3 ... Die Eigenschaften der Klasse Math ... 1237
21.4 ... Genauigkeit, Wertebereich eines Typs und Überlaufkontrolle * ... 1248
21.5 ... Zufallszahlen: Random, SecureRandom, SplittableRandom ... 1253
21.6 ... Große Zahlen * ... 1257
21.7 ... Mathe bitte strikt * ... 1270
21.8 ... Geld und Währung ... 1272
21.9 ... Zum Weiterlesen ... 1274
22. Testen mit JUnit ... 1275
22.1 ... Softwaretests ... 1275
22.2 ... Das Test-Framework JUnit ... 1276
22.3 ... Wie gutes Design das Testen ermöglicht ... 1288
22.4 ... Aufbau größerer Testfälle ... 1291
22.5 ... Dummy, Fake, Stub und Mock ... 1294
22.6 ... JUnit-Erweiterungen, Testzusätze ... 1295
22.7 ... Zum Weiterlesen ... 1296
23. Die Werkzeuge des JDK ... 1299
23.1 ... Übersicht ... 1299
23.2 ... Java-Quellen übersetzen ... 1300
23.3 ... Die Java-Laufzeitumgebung ... 1303
23.4 ... jlink: der Java Linker ... 1306
23.5 ... Dokumentationskommentare mit Javadoc ... 1307
23.6 ... Das Archivformat JAR ... 1317
23.7 ... Zum Weiterlesen ... 1323
Java SE-Module und Paketübersicht ... 1325
Index ... 1345