Buchhandlung BOOKandPAPER.store

Suche

Java ist auch eine Insel

Java ist auch eine Insel

Das Standardwerk für Programmierer. Über 1.000 Seiten Java-Wissen. Mit vielen Beispielen und Übungen, aktuell zu Java 21 | Christian Ullenboom

Hardcover
2023 Rheinwerk
Auflage: 17. Auflage
1223 Seiten; 24 cm x 19 cm
Sprache: Deutsch
ISBN: 978-3-8362-9544-4

Rezension verfassen

€ 51,30

in den Warenkorb
Hauptbeschreibung
Die „Insel“ ist die erste Wahl, wenn es um aktuelles und praktisches Java-Wissen geht. Java-Einsteiger, Studierende und Umsteigerinnen 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 ist das Standardwerk für die Java-Programmierung. Es liegt aktuell in der 17. Auflage vor.

Aus dem Inhalt:

Imperative Sprachkonzepte
Klassen und Objekte
Ausnahmebehandlung
Generics
Lambda-Ausdrücke und funktionale Programmierung
Die Klassenbibliothek
Nebenläufige Programmierung
Einführung in Datenstrukturen, GUI-Entwicklung, Dateien usw.

Zitat aus einer Besprechung
»Ein wertvolles Lehr- und Arbeitsbuch für fortgeschrittene Java-Programmierer und bietet eine umfassende Referenz für den täglichen Gebrauch.«





  Materialien zum Buch ... 31



  Vorwort ... 33



  1.  Java ist auch eine Sprache ... 49





       1.1 ... Historischer Hintergrund ... 50


       1.2 ... Warum Java populär ist -- die zentralen Eigenschaften ... 52


       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 ... 70


       1.6 ... Java SE-Implementierungen ... 74


       1.7 ... JDK installieren ... 77


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


       1.9 ... Entwicklungsumgebungen ... 83


       1.10 ... Zum Weiterlesen ... 89






  2.  Imperative Sprachkonzepte ... 91





       2.1 ... Elemente der Programmiersprache Java ... 91


       2.2 ... Von der Klasse zur Anweisung ... 99


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


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


       2.5 ... Bedingte Anweisungen oder Fallunterscheidungen ... 151


       2.6 ... Immer das Gleiche mit den Schleifen ... 170


       2.7 ... Methoden einer Klasse ... 188


       2.8 ... Zum Weiterlesen ... 212






  3.  Klassen und Objekte ... 213





       3.1 ... Objektorientierte Programmierung (OOP) ... 213


       3.2 ... Eigenschaften einer Klasse ... 215


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


       3.4 ... Neue Objekte erzeugen ... 219


       3.5 ... ZZZZZnake ... 231


       3.6 ... Pakete schnüren, Importe und Compilationseinheiten ... 233


       3.7 ... Mit Referenzen arbeiten, Vielfalt, Identität, Gleichwertigkeit ... 241


       3.8 ... Zum Weiterlesen ... 253






  4.  Arrays und ihre Anwendungen ... 255





       4.1 ... Einfache Feldarbeit ... 255


       4.2 ... Die erweiterte for-Schleife ... 267


       4.3 ... Methode mit variabler Argumentanzahl (Varargs) ... 271


       4.4 ... Mehrdimensionale Arrays * ... 273


       4.5 ... Bibliotheksunterstützung von Arrays ... 279


       4.6 ... Die Klasse Arrays zum Vergleichen, Füllen, Suchen und Sortieren nutzen ... 282


       4.7 ... Der Einstiegspunkt für das Laufzeitsystem: main(...) ... 295


       4.8 ... Zum Weiterlesen ... 298






  5.  Der Umgang mit Zeichen und Zeichenketten ... 299





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


       5.2 ... Datentypen für Zeichen und Zeichenfolgen ... 307


       5.3 ... Die Character-Klasse ... 308


       5.4 ... Zeichenfolgen ... 313


       5.5 ... Die Klasse String und ihre Methoden ... 315


       5.6 ... Veränderbare Zeichenketten mit StringBuilder und StringBuffer ... 348


       5.7 ... CharSequence als Basistyp ... 357


       5.8 ... Konvertieren zwischen Primitiven und Strings ... 360


       5.9 ... Strings zusammenhängen (konkatenieren) ... 368


       5.10 ... Zerlegen von Zeichenketten ... 370


       5.11 ... Ausgaben formatieren ... 375


       5.12 ... Zum Weiterlesen ... 381






  6.  Eigene Klassen schreiben ... 383





       6.1 ... Eigene Klassen mit Eigenschaften deklarieren ... 383


       6.2 ... Privatsphäre und Sichtbarkeit ... 394


       6.3 ... Eine für alle -- statische Methoden und Klassenvariablen ... 405


       6.4 ... Konstanten und Aufzählungen ... 412


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


       6.6 ... Klassen- und Objektinitialisierung * ... 434


       6.7 ... Zum Weiterlesen ... 443






  7.  Objektorientierte Beziehungsfragen ... 445





       7.1 ... Assoziationen zwischen Objekten ... 445


       7.2 ... Vererbung ... 455


       7.3 ... Typen in Hierarchien ... 465


       7.4 ... Methoden überschreiben ... 479


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


       7.6 ... Finale Klassen und finale Methoden ... 488


       7.7 ... Abstrakte Klassen und abstrakte Methoden ... 490


       7.8 ... Weiteres zum Überschreiben und dynamischen Binden ... 499


       7.9 ... Zum Weiterlesen und Programmieraufgabe ... 505






  8.  Records, Schnittstellen, Aufzählungen, versiegelte Klassen ... 507





       8.1 ... Records ... 507


       8.2 ... Schnittstellen ... 518


       8.3 ... Aufzählungstypen ... 550


       8.4 ... Versiegelte Klassen und Schnittstellen ... 560


       8.5 ... Zum Weiterlesen ... 568






  9.  Ausnahmen müssen sein ... 569





       9.1 ... Problembereiche einzäunen ... 570


       9.2 ... Ausnahmen mit throws nach oben reichen ... 579


       9.3 ... Die Klassenhierarchie der Ausnahmen ... 580


       9.4 ... Abschlussbehandlung mit finally ... 590


       9.5 ... Auslösen eigener Exceptions ... 595


       9.6 ... try mit Ressourcen (automatisches Ressourcen-Management) ... 611


       9.7 ... Besonderheiten bei der Ausnahmebehandlung * ... 621


       9.8 ... Harte Fehler -- Error * ... 627


       9.9 ... Assertions * ... 627


       9.10 ... Zum Weiterlesen ... 630






10.  Geschachtelte Typen ... 631





       10.1 ... Geschachtelte Klassen, Schnittstellen und Aufzählungen ... 631


       10.2 ... Statische geschachtelte Typen ... 633


       10.3 ... Nichtstatische geschachtelte Typen ... 635


       10.4 ... Lokale Klassen ... 638


       10.5 ... Anonyme innere Klassen ... 639


       10.6 ... Vermischtes ... 644


       10.7 ... Zum Weiterlesen ... 648






11.  Besondere Typen der Java SE ... 649





       11.1 ... Object ist die Mutter aller Klassen ... 650


       11.2 ... Schwache Referenzen und Cleaner ... 672


       11.3 ... Die Utility-Klasse java.util.Objects ... 673


       11.4 ... Vergleichen von Objekten und Ordnung herstellen ... 677


       11.5 ... Wrapper-Klassen und Autoboxing ... 686


       11.6 ... Iterator, Iterable * ... 706


       11.7 ... Annotationen in der Java SE ... 714


       11.8 ... Zum Weiterlesen ... 719






12.  Generics ... 721





       12.1 ... Einführung in Java Generics ... 721


       12.2 ... Umsetzen der Generics, Typlöschung und Raw-Types ... 737


       12.3 ... Die Typen über Bounds einschränken ... 745


       12.4 ... Typparameter in der throws-Klausel * ... 748


       12.5 ... Generics und Vererbung, Invarianz ... 752


       12.6 ... Konsequenzen der Typlöschung: Typ-Token, Arrays und Brücken * ... 766


       12.7 ... Zum Weiterlesen ... 775






13.  Lambda-Ausdrücke und funktionale Programmierung ... 777





       13.1 ... Funktionale Schnittstellen und Lambda-Ausdrücke ... 777


       13.2 ... Methodenreferenz ... 801


       13.3 ... Konstruktorreferenz ... 805


       13.4 ... Funktionale Programmierung ... 809


       13.5 ... Funktionale Schnittstellen aus dem java.util.function-Paket ... 818


       13.6 ... Optional ist keine Nullnummer ... 832


       13.7 ... Was ist jetzt so funktional? ... 843


       13.8 ... Zum Weiterlesen ... 845






14.  Architektur, Design und angewandte Objektorientierung ... 847





       14.1 ... SOLIDe Modellierung ... 847


       14.2 ... Architektur, Design und Implementierung ... 851


       14.3 ... Design-Patterns (Entwurfsmuster) ... 852


       14.4 ... Zum Weiterlesen ... 859






15.  Java Platform Module System ... 861





       15.1 ... Klassenlader (Class Loader) und Modul-/Klassenpfad ... 861


       15.2 ... Module im JPMS einbinden ... 867


       15.3 ... Eigene Module entwickeln ... 873


       15.4 ... Zum Weiterlesen ... 881






16.  Die Klassenbibliothek ... 883





       16.1 ... Die Java-Klassenphilosophie ... 883


       16.2 ... Einfache Zeitmessung und Profiling * ... 890


       16.3 ... Die Klasse Class ... 891


       16.4 ... Die Utility-Klassen System und Properties ... 894


       16.5 ... Sprachen der Länder ... 902


       16.6 ... Wichtige Datum-Klassen im Überblick ... 906


       16.7 ... Date-Time-API ... 909


       16.8 ... Logging mit Java ... 914


       16.9 ... Maven: Build-Management und Abhängigkeiten auflösen ... 917


       16.10 ... Zum Weiterlesen ... 919






17.  Einführung in die nebenläufige Programmierung ... 921





       17.1 ... Nebenläufigkeit und Parallelität ... 921


       17.2 ... Existierende Threads und neue Threads erzeugen ... 925


       17.3 ... Thread-Eigenschaften und Zustände ... 931


       17.4 ... Der Ausführer (Executor) kommt ... 943


       17.5 ... Zum Weiterlesen ... 958






18.  Einführung in Datenstrukturen und Algorithmen ... 959





       18.1 ... Listen ... 959


       18.2 ... Mengen (Sets) ... 977


       18.3 ... Assoziative Speicher ... 987


       18.4 ... Ausgewählte Basistypen ... 994


       18.5 ... Java-Stream-API ... 994


       18.6 ... Einen Stream erzeugen ... 997


       18.7 ... Terminale Operationen ... 1001


       18.8 ... Intermediäre Operationen ... 1012


       18.9 ... Zum Weiterlesen ... 1019






19.  Einführung in grafische Oberflächen ... 1021





       19.1 ... GUI-Frameworks ... 1021


       19.2 ... Deklarative und programmierte Oberflächen ... 1025


       19.3 ... GUI-Builder ... 1026


       19.4 ... Mit dem Eclipse WindowBuilder zur ersten Swing-Oberfläche ... 1027


       19.5 ... Grundlegendes zum Zeichnen ... 1039


       19.6 ... Zum Weiterlesen ... 1045






20.  Einführung in Dateien und Datenströme ... 1047





       20.1 ... Alte und neue Welt in java.io und java.nio ... 1047


       20.2 ... Dateisysteme und Pfade ... 1048


       20.3 ... Dateien mit wahlfreiem Zugriff ... 1058


       20.4 ... Basisklassen für die Ein-/Ausgabe ... 1064


       20.5 ... Lesen aus Dateien und Schreiben in Dateien ... 1076


       20.6 ... Zum Weiterlesen ... 1082






21.  Einführung ins Datenbankmanagement mit JDBC ... 1083





       21.1 ... Relationale Datenbanken und Java-Zugriffe ... 1083


       21.2 ... Eine Beispielabfrage ... 1086


       21.3 ... Zum Weiterlesen ... 1088






22.  Bits und Bytes, Mathematisches und Geld ... 1089





       22.1 ... Bits und Bytes ... 1089


       22.2 ... Fließkomma-Arithmetik in Java ... 1104


       22.3 ... Die Eigenschaften der Klasse Math ... 1110


       22.4 ... Genauigkeit, Wertebereich eines Typs und Überlaufkontrolle * ... 1121


       22.5 ... Zufallszahlen: Random, ThreadLocalRandom und SecureRandom ... 1127


       22.6 ... Große Zahlen * ... 1131


       22.7 ... Geld und Währung ... 1144


       22.8 ... Zum Weiterlesen ... 1146






23.  Testen mit JUnit ... 1147





       23.1 ... Softwaretests ... 1147


       23.2 ... Das Test-Framework JUnit ... 1148


       23.3 ... Java-Assertions-Bibliotheken und AssertJ ... 1161


       23.4 ... Aufbau größerer Testfälle ... 1163


       23.5 ... Wie gutes Design das Testen ermöglicht ... 1165


       23.6 ... Dummy, Fake, Stub und Mock ... 1167


       23.7 ... JUnit-Erweiterungen, Testzusätze ... 1169


       23.8 ... Zum Weiterlesen ... 1170






24.  Die Werkzeuge des JDK ... 1171





       24.1 ... Übersicht ... 1171


       24.2 ... Java-Quellen übersetzen ... 1172


       24.3 ... Die Java-Laufzeitumgebung ... 1173


       24.4 ... Dokumentationskommentare mit Javadoc ... 1176


       24.5 ... Das Archivformat JAR ... 1186


       24.6 ... Zum Weiterlesen ... 1188






  Anhang ... 1171





       A ... Java SE-Module und Paketübersicht ... 1189






  Index ... 1207