49,90 €
versandkostenfrei*

inkl. MwSt.
Sofort lieferbar
0 °P sammeln
    Gebundenes Buch

1 Kundenbewertung

Die "Insel" ist die erste Wahl, wenn es um aktuelles und praktisches Java-Wissen geht. Java-Einsteiger, Studenten und Umsteiger profitieren von diesem Lehrwerk. Neben der Behandlung der Sprachgrundlagen von Java gibt es kompakte Einführungen in Spezialthemen. So erfahren Sie einiges über Threads, Algorithmen, GUIs, Dateien und Datenströme. Dieses Buch gehört in das Regal eines jeden Java-Programmierers. Es liegt aktuell in der 15. Auflage vor.Aus dem Inhalt:Imperative SprachkonzepteKlassen und ObjekteAusnahmebehandlungGenericsLambda-Ausdrücke und funktionale ProgrammierungDie…mehr

Produktbeschreibung
Die "Insel" ist die erste Wahl, wenn es um aktuelles und praktisches Java-Wissen geht. Java-Einsteiger, Studenten und Umsteiger profitieren von diesem Lehrwerk. Neben der Behandlung der Sprachgrundlagen von Java gibt es kompakte Einführungen in Spezialthemen. So erfahren Sie einiges über Threads, Algorithmen, GUIs, Dateien und Datenströme. Dieses Buch gehört in das Regal eines jeden Java-Programmierers. Es liegt aktuell in der 15. Auflage vor.Aus dem Inhalt:Imperative SprachkonzepteKlassen und ObjekteAusnahmebehandlungGenericsLambda-Ausdrücke und funktionale ProgrammierungDie KlassenbibliothekNebenläufige ProgrammierungEinführung in Datenstrukturen, GUI-Entwicklung, Dateien usw.
Die Fachpresse zur Vorauflage:

Java magazin: »Die neueste Version des Rheinwerk-Klassikers bietet Java-Programmierern einen Kurzüberblick über diverse Themen und taugt auch als Nachschlagewerk.«

  • Produktdetails
  • Rheinwerk Computing
  • Verlag: Rheinwerk Verlag
  • Artikelnr. des Verlages: 459/07737
  • 15., aktualis. u. überarb. Aufl.
  • Seitenzahl: 1246
  • Erscheinungstermin: 29. Juni 2020
  • Deutsch
  • Abmessung: 246mm x 196mm x 68mm
  • Gewicht: 2398g
  • ISBN-13: 9783836277372
  • ISBN-10: 3836277379
  • Artikelnr.: 58848707
Autorenporträt
Ullenboom, Christian
Christian Ullenboom, Dipl.-Informatiker, ist zertifizierter Java-Programmierer und seit 1997 Trainer und Berater für Java-Technologien und objektorientierte Analyse und Design. Seit Jahren teilt er sein Wissen mit unzähligen Besuchern seiner Website, wo er Fragen beantwortet, Inhalte bereitstellt und diskutiert. Seine Sympathie gilt Java Performance Tuning und den sinnlichen Freuden des Lebens.
Inhaltsangabe
Materialien zum Buch ... 30
Vorwort ... 31
1. Java ist auch eine Sprache ... 47

1.1 ... Historischer Hintergrund ... 47
1.2 ... Warum Java populär ist - die zentralen Eigenschaften ... 49
1.3 ... Java im Vergleich zu anderen Sprachen * ... 63
1.4 ... Weiterentwicklung und Verluste ... 66
1.5 ... Java-Plattformen: Java SE, Jakarta EE, Java ME, Java Card ... 69
1.6 ... Java SE-Implementierungen ... 75
1.7 ... AdoptOpenJDK installieren ... 79
1.8 ... Das erste Programm compilieren und testen ... 82
1.9 ... Entwicklungsumgebungen ... 85
1.10 ... Zum Weiterlesen ... 96

2. Imperative Sprachkonzepte ... 97

2.1 ... Elemente der Programmiersprache Java ... 97
2.2 ... Von der Klasse zur Anweisung ... 105
2.3 ... Datentypen, Typisierung, Variablen und Zuweisungen ... 116
2.4 ... Ausdrücke, Operanden und Operatoren ... 135
2.5 ... Bedingte Anweisungen oder Fallunterscheidungen ... 160
2.6 ... Immer das Gleiche mit den Schleifen ... 179
2.7 ... Methoden einer Klasse ... 196
2.8 ... Zum Weiterlesen ... 222

3. Klassen und Objekte ... 223

3.1 ... Objektorientierte Programmierung (OOP) ... 223
3.2 ... Eigenschaften einer Klasse ... 225
3.3 ... Natürlich modellieren mit der UML (Unified Modeling Language) * ... 226
3.4 ... Neue Objekte erzeugen ... 230
3.5 ... ZZZZZnake ... 242
3.6 ... Pakete schnüren, Importe und Compilationseinheiten ... 245
3.7 ... Mit Referenzen arbeiten, Vielfalt, Identität, Gleichwertigkeit ... 253
3.8 ... Zum Weiterlesen ... 265

4. Arrays und ihre Anwendungen ... 267

4.1 ... Einfache Feldarbeit ... 267
4.2 ... Die erweiterte for-Schleife ... 278
4.3 ... Methode mit variabler Argumentanzahl (Varargs) ... 282
4.4 ... Mehrdimensionale Arrays * ... 285
4.5 ... Bibliotheksunterstützung von Arrays ... 291
4.6 ... Die Klasse Arrays zum Vergleichen, Füllen, Suchen und Sortieren nutzen ... 293
4.7 ... Der Einstiegspunkt für das Laufzeitsystem: main(...) ... 310
4.8 ... Zum Weiterlesen ... 313

5. Der Umgang mit Zeichenketten ... 315

5.1 ... Von ASCII über ISO-8859-1 zu Unicode ... 315
5.2 ... Datentypen für Zeichen und Zeichenfolgen ... 324
5.3 ... Die Character-Klasse ... 325
5.4 ... Zeichenfolgen ... 330
5.5 ... Die Klasse String und ihre Methoden ... 332
5.6 ... Veränderbare Zeichenketten mit StringBuilder und StringBuffer ... 358
5.7 ... CharSequence als Basistyp ... 368
5.8 ... Konvertieren zwischen Primitiven und Strings ... 371
5.9 ... Strings zusammenhängen (konkatenieren) ... 380
5.10 ... Zerlegen von Zeichenketten ... 382
5.11 ... Ausgaben formatieren ... 388
5.12 ... Zum Weiterlesen ... 394

6. Eigene Klassen schreiben ... 395

6.1 ... Eigene Klassen mit Eigenschaften deklarieren ... 395
6.2 ... Privatsphäre und Sichtbarkeit ... 407
6.3 ... Eine für alle - statische Methoden und statische Attribute ... 417
6.4 ... Konstanten und Aufzählungen ... 424
6.5 ... Objekte anlegen und zerstören ... 432
6.6 ... Klassen- und Objektinitialisierung * ... 446
6.7 ... Zum Weiterlesen ... 456

7. Objektorientierte Beziehungsfragen ... 457

7.1 ... Assoziationen zwischen Objekten ... 457
7.2 ... Vererbung ... 465
7.3 ... Typen in Hierarchien ... 476
7.4 ... Methoden überschreiben ... 483
7.5 ... Drum prüfe, wer sich dynamisch bindet ... 494
7.6 ... Abstrakte Klassen und abstrakte Methoden ... 502
7.7 ... Schnittstellen ... 510
7.8 ... SOLIDe Modellierung ... 549
7.9 ... Zum Weiterlesen ... 552

8. Ausnahmen müssen sein ... 553

8.1 ... Problembereiche einzäunen ... 553
8.2 ... Geprüfte Ausnahmen ... 555
8.3 ... Ungeprüfte Ausnahmen (RuntimeException) ... 558
8.4 ... Gut gefangen ... 562
8.5 ... Die Klassenhierarchie der Ausnahmen ... 572
8.6 ... Auslösen eigener Exceptions ... 583
8.7 ... Automatisches Ressourcen-Management (try mit Ressourcen) ... 602
8.8 ... Besonderheiten bei der Ausnahmebehandlung * ... 612
8.9 ... Harte Fehler - Error * ... 617
8.10 ... Assertions * ... 618
8.11 ... Zum Weiterlesen ... 622

9. Geschachtelte Typen ... 623

9.1 ... Geschachtelte Klassen, Schnittstellen und Aufzählungen ... 623
9.2 ... Statische geschachtelte Typen ... 624
9.3 ... Nichtstatische geschachtelte Typen ... 626
9.4 ... Lokale Klassen ... 629
9.5 ... Anonyme innere Klassen ... 631
9.6 ... Zugriff auf lokale Variablen aus lokalen und anonymen Klassen * ... 636
9.7 ... this in Unterklassen * ... 637
9.8 ... Nester ... 640
9.9 ... Zum Weiterlesen ... 641

10. Besondere Typen der Java SE ... 643

10.1 ... Object ist die Mutter aller Klassen ... 644
10.2 ... Schwache Referenzen und Cleaner ... 669
10.3 ... Die Utility-Klasse java.util.Objects ... 670
10.4 ... Vergleichen von Objekten und Ordnung herstellen ... 674
10.5 ... Wrapper-Klassen und Autoboxing ... 683
10.6 ... Iterator, Iterable * ... 703
10.7 ... Die Spezial-Oberklasse Enum ... 710
10.8 ... Annotationen in der Java SE ... 720
10.9 ... Zum Weiterlesen ... 726

11. Generics ... 727

11.1 ... Einführung in Java Generics ... 727
11.2 ... Umsetzen der Generics, Typlöschung und Raw-Types ... 743
11.3 ... Die Typen über Bounds einschränken ... 752
11.4 ... Typparameter in der throws-Klausel * ... 756
11.5 ... Generics und Vererbung, Invarianz ... 759
11.6 ... Konsequenzen der Typlöschung: Typ-Token, Arrays und Brücken * ... 773
11.7 ... Zum Weiterlesen ... 783

12. Lambda-Ausdrücke und funktionale Programmierung ... 785

12.1 ... Funktionale Schnittstellen und Lambda-Ausdrücke ... 785
12.2 ... Methodenreferenz ... 811
12.3 ... Konstruktorreferenz ... 815
12.4 ... Funktionale Programmierung ... 819
12.5 ... Funktionale Schnittstellen aus dem java.util.function-Paket ... 828
12.6 ... Optional ist keine Nullnummer ... 842
12.7 ... Was ist jetzt so funktional? ... 854
12.8 ... Zum Weiterlesen ... 856

13. Architektur, Design und angewandte Objektorientierung ... 857

13.1 ... Architektur, Design und Implementierung ... 857
13.2 ... Design-Patterns (Entwurfsmuster) ... 858
13.3 ... Zum Weiterlesen ... 865

14. Java Platform Module System ... 867

14.1 ... Klassenlader (Class Loader) und Modul-/Klassenpfad ... 867
14.2 ... Module entwickeln und einbinden ... 873
14.3 ... Zum Weiterlesen ... 888

15. Die Klassenbibliothek ... 889

15.1 ... Die Java-Klassenphilosophie ... 889
15.2 ... Einfache Zeitmessung und Profiling * ... 896
15.3 ... Die Klasse Class ... 899
15.4 ... Klassenlader ... 903
15.5 ... Die Utility-Klassen System und Properties ... 904
15.6 ... Sprachen der Länder ... 913
15.7 ... Wichtige Datum-Klassen im Überblick ... 917
15.8 ... Date-Time-API ... 920
15.9 ... Logging mit Java ... 925
15.10 ... Maven: Build-Management und Abhängigkeiten auflösen ... 929
15.11 ... Zum Weiterlesen ... 933

16. Einführung in die nebenläufige Programmierung ... 935

16.1 ... Nebenläufigkeit und Parallelität ... 935
16.2 ... Existierende Threads und neue Threads erzeugen ... 939
16.3 ... Thread-Eigenschaften und Zustände ... 946
16.4 ... Der Ausführer (Executor) kommt ... 960
16.5 ... Zum Weiterlesen ... 975

17. Einführung in Datenstrukturen und Algorithmen ... 977

17.1 ... Listen ... 977
17.2 ... Mengen (Sets) ... 996
17.3 ... Java Stream-API ... 1007
17.4 ... Einen Stream erzeugen ... 1009
17.5 ... Terminale Operationen ... 1014
17.6 ... Intermediäre Operationen ... 1025
17.7 ... Zum Weiterlesen ... 1031

18. Einführung in grafische Oberflächen ... 1033

18.1 ... GUI-Frameworks ... 1033
18.2 ... Deklarative und programmierte Oberflächen ... 1037
18.3 ... GUI-Builder ... 1038
18.4 ... Mit dem Eclipse WindowBuilder zur ersten Swing-Oberfläche ... 1039
18.5 ... Grundlegendes zum Zeichnen ... 1051
18.6 ... Zum Weiterlesen ... 1057

19. Einführung in Dateien und Datenströme ... 1059

19.1 ... Alte und neue Welt in java.io und java.nio ... 1059
19.2 ... Dateisysteme und Pfade ... 1061
19.3 ... Dateien mit wahlfreiem Zugriff ... 1070
19.4 ... Basisklassen für die Ein-/Ausgabe ... 1076
19.5 ... Lesen aus Dateien und Schreiben in Dateien ... 1088
19.6 ... Zum Weiterlesen ... 1095

20. Einführung ins Datenbankmanagement mit JDBC ... 1097

20.1 ... Relationale Datenbanken und Java-Zugriffe ... 1097
20.2 ... Eine Beispielabfrage ... 1100
20.3 ... Zum Weiterlesen ... 1102

21. Bits und Bytes, Mathematisches und Geld ... 1103

21.1 ... Bits und Bytes ... 1103
21.2 ... Fließkomma-Arithmetik in Java ... 1118
21.3 ... Die Eigenschaften der Klasse Math ... 1124
21.4 ... Genauigkeit, Wertebereich eines Typs und Überlaufkontrolle * ... 1135
21.5 ... Zufallszahlen: Random, SecureRandom und SplittableRandom ... 1140
21.6 ... Große Zahlen * ... 1144
21.7 ... Mathe bitte strikt * ... 1158
21.8 ... Geld und Währung ... 1159
21.9 ... Zum Weiterlesen ... 1161

22. Testen mit JUnit ... 1163

22.1 ... Softwaretests ... 1163
22.2 ... Das Test-Framework JUnit ... 1164
22.3 ... Java-Assertions-Bibliotheken und AssertJ ... 1176
22.4 ... Aufbau größerer Testfälle ... 1178
22.5 ... Wie gutes Design das Testen ermöglicht ... 1181
22.6 ... Dummy, Fake, Stub und Mock ... 1183
22.7 ... JUnit-Erweiterungen, Testzusätze ... 1185
22.8 ... Zum Weiterlesen ... 1186

23. Die Werkzeuge des JDK ... 1187

23.1 ... Übersicht ... 1187
23.2 ... Java-Quellen übersetzen ... 1188
23.3 ... Die Java-Laufzeitumgebung ... 1190
23.4 ... Dokumentationskommentare mit Javadoc ... 1194
23.5 ... Das Archivformat JAR ... 1204
23.6 ... jlink: der Java Linker ... 1209
23.7 ... Zum Weiterlesen ... 1210

Anhang ... 1211
Index ... 1229

1 Schon wieder eine neue Sprache? 49
... 1.1 Der erste Kontakt 51
... 1.2 Historischer Hintergrund 51
... 1.3 Eigenschaften von Java 53
... 1.4 Java im Vergleich zu anderen Sprachen 59
... 1.6 Entwicklungs- und Laufzeitumgebungen 61
... 1.7 Installationsanleitung für das Java 2 65
... 1.8 Das erste Programm compilieren und testen 69
... 1.9 Eclipse 71

2 Sprachbeschreibung 79
... 2.1 Anweisungen und Programme 81
... 2.2 Elemente der Programmiersprache Java 83
... 2.3 Datentypen 95
... 2.4 Ausdrücke, Operanden und Operatoren 110
... 2.5 Bedingte Anweisungen oder Fallunterscheidungen 123
... 2.6 Schleifen 131
... 2.7 Methoden einer Klasse 142
... 2.8 Dokumentationskommentare 163
... 2.9 Einfache Benutzereingaben 178

3 Klassen und Objekte 181
... 3.1 Objektorientierte Programmierung 183
... 3.2 Klassen benutzen 184
... 3.3 Import und Pakete 192
... 3.4 Die API-Dokumentation 193
... 3.5 Mit Referenzen arbeiten 194
... 3.6 Arrays 200
... 3.7 Der Einstiegspunkt für das Laufzeitsystem main() 215
... 3.8 Eigene Pakete schnüren 218

4 Der Umgang mit Zeichenketten 223
... 4.1 Strings und deren Anwendung 225
... 4.2 Veränderbare Zeichenketten mit StringBuffer/StringBuilder 237
... 4.3 Vergleiche von Zeichenketten 241
... 4.4 Zeichenkodierungen 246
... 4.5 Reguläre Ausdrücke 248
... 4.6 Zerlegen von Zeichenketten 249
... 4.7 Formatieren von Ausgaben 256

5 Mathematisches 265
... 5.1 Arithmetik in Java 267
... 5.2 Die Funktionen der Math-Klasse 269
... 5.3 Mathe bitte strikt 274
... 5.4 Die Random-Klasse 275
... 5.5 Große Zahlen 276
... 5.6 Rechnen mit Einheiten: Java Units Specification 282

6 Eigene Klassen schreiben 285
... 6.1 Eigene Klassen definieren 287
... 6.2 Assoziationen zwischen Objekten 293
... 6.3 Privatsphäre und Sichtbarkeit 294
... 6.4 Statische Methoden und Attribute 301
... 6.5 Konstanten und Aufzählungen 306
... 6.6 Objekte anlegen und zerstören 311
... 6.7 Vererbung 327
... 6.8 Die oberste aller Klassen: Object 341
... 6.9 Die Oberklasse gibt Funktionalität vor 351
... 6.10 Abstrakte Klassen 358
... 6.11 Schnittstellen 364
... 6.12 Innere Klassen 378
... 6.13 Generische Datentypen 392
... 6.14 Die Spezial-Oberklasse Enum 399
... 6.15 Gegenseitige Abhängigkeiten von Klassen 403
... 6.16 Veraltete (deprecated) Methoden/Konstruktoren 403

7 Exceptions 407
... 7.1 Problembereiche einzäunen 409
... 7.2 Die Klassenhierarchie der Fehler 416
... 7.3 Werfen eigener Exceptions 420
... 7.4 Rückgabewerte bei ausgelösten Ausnahmen 424
... 7.5 Stack-Aufruf analysieren 425
... 7.6 Assertions 426

8 Die Funktionsbibliothek 429
... 8.1 Die Java-Klassenphilosophie 431
... 8.2 Wrapper-Klassen 437
... 8.3 Benutzereinstellungen 450
... 8.4 Systemeigenschaften der Java-Umgebung 453
... 8.5 Ausführung von externen Programmen 456
... 8.6 Klassenlader (Class Loader) 462
... 8.7 Zeitmessung und Profiling 467

9 Threads und nebenläufige Programmierung 469
... 9.1 Prozesse und Threads 471
... 9.2 Threads erzeugen 474
... 9.3 Die Zustände eines Threads 480
... 9.4 Arbeit niederlegen und wieder aufnehmen 489
... 9.5 Priorität 489
... 9.6 Dämonen 491
... 9.7 Kooperative und nichtkooperative Threads 492
... 9.8 Synchronisation über kritische Abschnitte 493
... 9.9 Synchronisation über Warten und Benachrichtigen 503
... 9.10 Atomares und frische Werte mit volatile 512
... 9.11 Aktive Threads in der Umgebung 514
... 9.12 Gruppen von Threads in einer Thread-Gruppe 514
... 9.13 Die Klassen Timer und TimerTask 522
... 9.14 Einen Abbruch der virtuellen Maschine erkennen 523

10 Raum und Zeit 525
... 10.1 Greenwich Mean Time (GMT) 527
... 10.2 Wichtige Datum-Klassen im Überblick 528
... 10.3 Zeitzonen und Sprachen der Länder 528
... 10.4 Sprachen der Länder 532
... 10.5 Einfache Übersetzung durch ResourceBundle-Objekte 536
... 10.6 Die Klasse Date 537
... 10.7 Calendar und GregorianCalendar 539
... 10.8 Formatieren der Datumsangaben 546

11 Datenstrukturen und Algorithmen 557
... 11.1 Mit einem Iterator durch die Daten wandern 559
... 11.2 Datenstrukturen und die Collection-API 561
... 11.3 Listen 569
... 11.4 Stack (Kellerspeicher, Stapel) 581
... 11.5 Queues (Schlangen) 582
... 11.6 Assoziative Speicher und die Klasse HashMap 584
... 11.7 Die Properties-Klasse 592
... 11.8 Mengen (Sets) 597
... 11.9 Algorithmen in Collections 600
... 11.10 Synchronisation der Datenstrukturen 609
... 11.11 Die abstrakten Basisklassen für Container 610
... 11.12 Die Klasse BitSet für Bitmengen 611
... 11.13 Ein Design-Pattern durch Beobachten von Änderungen 614

12 Datenströme und Dateien 621
... 12.1 Datei und Verzeichnis 623
... 12.2 Dateien mit wahlfreiem Zugriff 638
... 12.3 Stream-Klassen und Reader/Writer 642
... 12.4 Binäre Ein-/Ausgabe-Klassen InputStream und OutputStream 644
... 12.5 Daten filtern durch FilterInputStream und FilterOutputStream 652
... 12.6 Besondere OutputStream- und InputStream-Klassen 660
... 12.7 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden 664
... 12.8 Die Unterklassen von Writer 664
... 12.9 Die Klassen um Reader 682
... 12.10 Die Filter für Zeichenströme 688
... 12.11 Kommunikation zwischen Threads mit Pipes 696
... 12.12 Datenkompression 700
... 12.13 Prüfsummen 712
... 12.14 Persistente Objekte und Serialisierung 716
... 12.15 Zugriff auf SMB-Server 732
... 12.16 Tokenizer 733
... 12.17 Die Logging-API 737

13 Die eXtensible Markup Language (XML) 741
... 13.1 Auszeichnungssprachen 743
... 13.2 Eigenschaften von XML-Dokumenten 744
... 13.3 Die Java-APIs für XML 753
... 13.4 XML-Dateien mit JDOM verarbeiten 754
... 13.5 JAXP als Java-Schnittstelle zu XML 771
... 13.6 Serielle Verarbeitung von XML mit SAX 775
... 13.7 HTML-Dokumenten mit JTidy und cyberneko einlesen 778

14 Grafikprogrammierung mit dem AWT 779
... 14.1 Das Abstract-Window-Toolkit 781
... 14.2 Das Toolkit 782
... 14.3 Fenster unter grafischen Oberflächen 783
... 14.4 Grundlegendes zum Zeichnen 788
... 14.5 Einfache Zeichenfunktionen 794
... 14.6 Zeichenketten schreiben 800
... 14.7 Clipping-Operationen 809
... 14.8 Farben 812
... 14.9 Bilder anzeigen und Grafiken verwalten 822
... 14.10 Java 2D-API 844
... 14.11 Von Produzenten, Konsumenten und Beobachtern 858
... 14.12 Filter 868
... 14.13 Drucken 871
... 14.14 Graphic Layers Framework 876
... 14.15 Grafikverarbeitung ohne grafische Oberfläche 876

15 Komponenten, Container und Ereignisse 879
... 15.1 Es tut sich was - Ereignisse beim AWT 881
... 15.2 Varianten, das Fenster zu schließen 886
... 15.3 Komponenten im AWT und in Swing 892
... 15.4 Das Swing-Fenster JFrame 900
... 15.5 Informationstext über die Klasse JLabel 902
... 15.6 Die Klasse ImageIcon 905
... 15.7 Eine Schaltfläche (JButton) 909
... 15.8 Tooltips 917
... 15.9 Der Container JPanel 918
... 15.10 Alles Auslegungssache: die Layoutmanager 918
... 15.11 Horizontale und vertikale Schieberegler 932
... 15.12 JSlider 936
... 15.13 Ein Auswahlmenü - Choice, JComboBox 937
... 15.14 Eines aus vielen - Kontrollfelder (JCheckBox) 943
... 15.15 Kontrollfeldgruppen, Optionsfelder und JRadioButton 945
... 15.16 Der Fortschrittsbalken JProgressBar 947
... 15.17 Rahmen (Borders) 949
... 15.18 Symbolleisten alias Toolbars 951
... 15.19 Menüs 953
... 15.20 Das Konzept des Model-View-Controllers 965
... 15.21 List-Boxen 967
... 15.22 JSpinner 969
... 15.23 Texteingabefelder 971
... 15.24 Bäume mit JTree-Objekten 980
... 15.25 Tabellen mit JTable 982
... 15.26 JRootPane, JLayeredPane und JDesktopPane 996
... 15.27 Flexibles Java-Look&Feel 1004
... 15.28 Swing-Beschriftungen einer anderen Sprache geben 1006
... 15.29 Die Zwischenablage (Clipboard) 1007
... 15.30 Undo durchführen 1010
... 15.31 Ereignisverarbeitung auf unterster Ebene 1012
... 15.32 AWT, Swing und die Threads 1013
... 15.33 Selbst definierte Cursor 1018
... 15.34 Mausrad-Unterstützung 1020
... 15.35 Benutzerinteraktionen automatisieren 1020
... 15.36 Alternativen zu AWT und Swing 1024

16 Netzwerkprogrammierung 1027
... 16.1 Grundlegende Begriffe 1029
... 16.2 URL-Verbindungen und URL-Objekte 1030
... 16.3 Die Klasse URLConnection 1038
... 16.4 Das Common Gateway Interface 1045
... 16.5 Host- und IP-Adressen 1050
... 16.6 NetworkInterface 1053
... 16.7 Mit dem Socket zum Server 1055
... 16.8 Client/Server-Kommunikation 1064
... 16.9 SLL-Verbindungen mit JSSE 1068
... 16.10 Apache Jakarta Commons HttpClient und Net 1069
... 16.11 E-Mail 1070
... 16.12 Arbeitsweise eines Web-Servers 1078
... 16.13 Datagram-Sockets 1085
... 16.14 Tiefer liegende Netzwerkeigenschaften 1095
... 16.15 Multicast-Kommunikation 1096

17 Servlets und Java Server Pages 1099
... 17.1 Dynamische Web-Seiten und Servlets 1101
... 17.2 Vom Client zum Server und wieder zurück 1104
... 17.3 Servlets und Java Server Pages entwickeln und testen 1107
... 17.4 Java Server Pages in Tomcat und Eclipse 1109
... 17.5 Skript-Elemente 1114
... 17.6 Implizite Objekte 1117
... 17.7 Was der Browser mit auf den Weg gibt - HttpServletRequest 1118
... 17.8 Formulardaten 1120
... 17.9 Das HttpServletResponse-Objekt 1123
... 17.10 JSP-Direktiven 1124
... 17.11 Aktionen 1128
... 17.12 Beans 1129
... 17.13 Kleine Kekse: die Klasse Cookies 1131
... 17.14 Sitzungsverfolgung (Session Tracking) 1138
... 17.15 Tag-Libraries 1143
... 17.16 Servlets 1145
... 17.17 Der Lebenszyklus eines Servlets 1148
... 17.18 Das HttpServletResponse-Objekt 1153
... 17.19 Objekte und Dateien per POST verschicken 1158
... 17.20 Servlets und Sessions 1159
... 17.21 Weiterleiten und Einbinden von Servlet-Inhalten 1160
... 17.22 Inter-Servlet-Kommunikation 1161
... 17.23 Internationalisierung 1162
... 17.24 Tomcat: Spezielles 1164

18 Verteilte Programmierung mit RMI und SOAP 1167
... 18.1 Entfernte Methoden 1169
... 18.2 Nutzen von RMI bei Middleware-Lösungen 1172
... 18.3 Die Lösung für Java ist RMI 1173
... 18.4 Definition einer entfernten Schnittstelle 1174
... 18.5 Das entfernte Objekt 1175
... 18.6 Stellvertreterobjekte erzeugen 1178
... 18.7 Der Namensdienst (Registry) 1179
... 18.8 Der Server 1180
... 18.9 Einen Client programmieren 1182
... 18.10 Aufräumen mit dem DGC 1183
... 18.11 Entfernte Objekte übergeben und laden 1184
... 18.12 Registry wird vom Server gestartet 1186
... 18.13 RMI über die Firewall 1187
... 18.14 RMI und CORBA 1188
... 18.15 UnicastRemoteObject, RemoteServer und RemoteObject 1188
... 18.16 Daily Soap 1189
... 18.17 Java-API für XML Messaging (JAXM) 1193
... 18.18 Java Message Service (JMS) 1194

19 Applets, Midlets und Sound 1197
... 19.1 Applets und Applikationen - wer darf was? 1199
... 19.2 Das erste Hallo-Applet 1199
... 19.3 Die Zyklen eines Applets 1200
... 19.4 Parameter an das Applet übergeben 1200
... 19.5 Fehler in Applets finden 1204
... 19.6 Browserabhängiges Verhalten 1204
... 19.7 Datenaustausch zwischen Applets 1206
... 19.8 Musik in einem Applet und in Applikationen 1209
... 19.9 Webstart 1212
... 19.10 Java 2 Micro Edition 1212

20 Datenbankmanagement mit JDBC 1217
... 20.1 Das relationale Modell 1219
... 20.2 JDBC: der Zugriff auf Datenbanken über Java 1220
... 20.3 Die Rolle von SQL 1220
... 20.4 Datenbanktreiber für den Zugriff 1225
... 20.5 Datenbanken und ihre Treiber 1226
... 20.6 Eine Beispielabfrage 1232
... 20.7 Mit Java an eine Datenbank andocken 1233
... 20.8 Datenbankabfragen 1239
... 20.9 Die Ausnahmen bei JDBC 1246
... 20.10 Transaktionen 1246
... 20.11 Elemente einer Datenbank hinzufügen und aktualisieren 1247
... 20.12 Vorbereitete Anweisungen (Prepared Statements) 1249
... 20.13 Die LOBs (Large Objects) 1251
... 20.14 Die SQL3-Datentypen ARRAY, STRUCT und REF 1252
... 20.15 Metadaten 1252
... 20.16 DataSource 1258
... 20.17 Java Data Objects (JDO) 1259
... 20.18 XML-Datenbanken 1260

21 Reflection und Annotationen 1263
... 21.1 MetaData 1265
... 21.2 Mit dem Class-Objekt etwas über Klassen erfahren 1267
... 21.3 Annotationen 1283
... 21.4 Objekte manipulieren 1284
... 21.5 Methoden aufrufen 1292
... 21.6 Informationen und Identifizierung von Paketen 1295

22 Komponenten durch Bohnen 1299
... 22.1 Grundlagen der Komponententechnik 1301
... 22.2 Das JavaBeans Development Kit (BDK) 1303
... 22.3 Die kleinste Bohne der Welt 1306
... 22.4 Jar-Archive für Komponenten 1306
... 22.5 Worauf JavaBeans basieren 1308
... 22.6 Eigenschaften 1309
... 22.7 Ereignisse 1312
... 22.8 Weitere Eigenschaften 1315
... 22.9 Bean-Eigenschaften anpassen 1319
... 22.10 Property-Editoren 1320
... 22.11 BeanInfo 1320
... 22.12 Beliebte Fehler 1321

23 Java Native Interface (JNI) 1323
... 23.1 Java Native Interface und Invocation-API 1325
... 23.2 Die Schritte zur Einbindung einer C-Funktion in ein Java-Programm 1326
... 23.3 Erweiterung unseres Programms 1329
... 23.4 Erweiterte JNI-Eigenschaften 1330

24 Sicherheitskonzepte 1335
... 24.1 Der Sandkasten (Sandbox) 1337
... 24.2 Sicherheitsmanager (Security Manager) 1337
... 24.3 Dienstprogramme zur Signierung 1346
... 24.4 Digitale Unterschriften 1347
... 24.5 Verschlüsseln von Daten(-strömen) 1352

25 Dienstprogramme für die Java-Umgebung 1357
... 25.1 Die Werkzeuge im Überblick 1359
... 25.2 Der Compiler javac 1359
... 25.3 Das Archivformat Jar 1362
... 25.4 Nativer Compiler JET 1367
... 25.5 Einpacken von Java-Programmen in ein exe mit JSmooth 1367
... 25.6 Decompiler 1367
... 25.7 Obfuscate Programm RetroGuard 1372
... 25.8 Sourcecode Beautifier 1373
... 25.9 Ant 1374

26 Style-Guide 1379
... 26.1 Programmierrichtlinien 1381
... 26.2 Allgemeine Richtlinien 1381
... 26.3 Quellcode kommentieren 1382
... 26.4 Bezeichnernamen 1385
... 26.5 Formatierung 1387
... 26.6 Ausdrücke 1389
... 26.7 Reihenfolge der Eigenschaften in Klassen 1390
... 26.8 Zugriffsrechte und Zugriffsmethoden 1391
... 26.9 Verweise 1392A Die Begleit-CD 1393

Vorwort ... 31

1. Java ist auch eine Sprache ... 49

1.1 ... Historischer Hintergrund ... 49

1.2 ... Warum Java gut ist -- die zentralen Eigenschaften ... 51

1.3 ... Java im Vergleich zu anderen Sprachen ... 65

1.4 ... Weiterentwicklung und Verluste ... 68

1.5 ... Java-Plattformen: Java SE, Jakarta EE, Java ME, Java Card ... 72

1.6 ... Java SE-Implementierungen ... 77

1.7 ... Die Installation des Oracle OpenJDK ... 81

1.8 ... Das erste Programm compilieren und testen ... 83

1.9 ... Entwicklungsumgebungen im Allgemeinen ... 87

1.10 ... Eclipse IDE im Speziellen ... 89

1.11 ... Zum Weiterlesen ... 101

2. Imperative Sprachkonzepte ... 103

2.1 ... Elemente der Programmiersprache Java ... 103

2.2 ... Von der Klasse zur Anweisung ... 111

2.3 ... Datentypen, Typisierung, Variablen und Zuweisungen ... 122

2.4 ... Ausdrücke, Operanden und Operatoren ... 140

2.5 ... Bedingte Anweisungen oder Fallunterscheidungen ... 166

2.6 ... Immer das Gleiche mit den Schleifen ... 182
2.7 ... Methoden einer Klasse ... 199

2.8 ... Zum Weiterlesen ... 226

3. Klassen und Objekte ... 227

3.1 ... Objektorientierte Programmierung (OOP) ... 227

3.2 ... Eigenschaften einer Klasse ... 229

3.3 ... Natürlich modellieren mit der UML (Unified Modeling Language) ... 230

3.4 ... Neue Objekte erzeugen ... 234

3.5 ... ZZZZZnake ... 246

3.6 ... Pakete schnüren, Importe und Kompilationseinheiten ... 249

3.7 ... Mit Referenzen arbeiten, Identität und Gleichheit (Gleichwertigkeit) ... 256

3.8 ... Zum Weiterlesen ... 268

4. Arrays und ihre Anwendungen ... 269

4.1 ... Arrays ... 269

4.2 ... Der Einstiegspunkt für das Laufzeitsystem: main(...) ... 311

4.3 ... Zum Weiterlesen ... 315

5. Der Umgang mit Zeichenketten ... 317

5.1 ... Von ASCII über ISO-8859-1 zu Unicode ... 317

5.2 ... Die Character-Klasse ... 326

5.3 ... Zeichenfolgen ... 332

5.4 ... Die Klasse String und ihre Methoden ... 334

5.5 ... Veränderbare Zeichenketten mit StringBuilder und StringBuffer ...360

5.6 ... CharSequence als Basistyp ... 370

5.7 ... Konvertieren zwischen Primitiven und Strings ... 373

5.8 ... Strings zusammenhängen (konkatenieren) ... 382

5.9 ... Zerlegen von Zeichenketten ... 384

5.10 ... Ausgaben formatieren ... 390

5.11 ... Zum Weiterlesen ... 396

6. Eigene Klassen schreiben ... 397

6.1 ... Eigene Klassen mit Eigenschaften deklarieren ... 397

6.2 ... Privatsphäre und Sichtbarkeit ... 409

6.3 ... Eine für alle -- statische Methoden und statische Attribute ... 419

6.4 ... Konstanten und Aufzählungen ... 426

6.5 ... Objekte anlegen und zerstören ... 434

6.6 ... Klassen- und Objektinitialisierung ... 446

6.7 ... Zum Weiterlesen ... 456

7. Objektorientierte Beziehungsfragen ... 457

7.1 ... Assoziationen zwischen Objekten ... 457

7.2 ... Vererbung ... 464

7.3 ... Typen in Hierarchien ... 475

7.4 ... Methoden überschreiben ... 482

7.5 ... Drum prüfe, wer sich dynamisch bindet ... 493

7.6 ... Abstrakte Klassen und abstrakte Methoden ... 502

7.7 ... Schnittstellen ... 510

7.8 ... SOLIDe Modellierung ... 549

7.9 ... Zum Weiterlesen ... 552

8. Ausnahmen müssen sein ... 553

8.1 ... Problembereiche einzäunen ... 553

8.2 ... Die Klassenhierarchie der Ausnahmen ... 569

8.3 ... RuntimeException muss nicht aufgefangen werden ... 579

8.4 ... Harte Fehler -- Error ... 581

8.5 ... Auslösen eigener Exceptions ... 582

8.6 ... Automatisches Ressourcen-Management (try mit Ressourcen) ... 602

8.7 ... Besonderheiten bei der Ausnahmebehandlung ... 611

8.8 ... Assertions ... 617

8.9 ... Zum Weiterlesen ... 621

9. Geschachtelte.Typen ... 623

9.1 ... Geschachtelte Klassen, Schnittstellen, Aufzählungen ... 623

9.2 ... Statische geschachtelte Typen ... 624

9.3 ... Nichtstatische geschachtelte Typen ... 626

9.4 ... Lokale Klassen ... 629

9.5 ... Anonyme innere Klass
Rezensionen
»Aktuell zu Java 14 vermittelt das Kultbuch für Java-Programmierer die Sprache von A bis Z. Anschaulich und praxisorientiert erfährt man alles, was man zu Klassen, Objekten, Generics und Lambda-Ausdrücken wissen muss.« Ahadesign.eu 202007
"Die neueste Version (...) bietet Java-Programmierern einen Kurzüberblick über diverse Themen und taugt auch als Nachschlagewerk." Java magazin 201909