Java ist auch eine Insel - Einführung, Ausbildung, Praxis

Gebundene Ausgabe
49,90 €
inkl. MwSt. versandkostenfrei!


Produktdetails  
Verlag Rheinwerk Verlag
Auflage 18. Auflage, 04.12.2025
Seiten 1234
Format 20,0 x 6,5 x 25,0 cm
Gewicht 2379 g
ISBN-10 3367111341
ISBN-13 9783367111343
Bestell-Nr 36711134A

Produktbeschreibung  

Das Standardwerk zur Java-Programmierung von Christian Ullenboom

  • Programmieren mit der Java Platform, Standard Edition 25
  • Java von A bis Z: Einführung, Praxis, Referenz
  • Von Ausdrücken und Anweisungen zu Klassen und Objekten

Java-Bücher gibt es wie Sand am Meer, aber die Java-Insel ist das Kultbuch für Programmierer und erste Wahl, wenn es um aktuelles und praktisches Java-Wissen geht. Seit über einem Jahrzehnt profitieren Java-Einsteiger, Studierende und Umsteiger von anderen Programmiersprachen gleichermaßen von diesem Standardwerk unter den Java-Büchern. Dozenten und Ausbilder schätzen das Buch für die zahlreichen Beispiele, Aufgaben und Musterlösungen. Leserinnen und Leser feiern es für die verständliche Darstellungsweise und den feinen Humor; Programmierung darf auch Spaß machen!

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.


Inhalt:


  Materialien zum Buch ... 32

  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 ... Einschränkungen von Java ... 65

       1.5 ... Weiterentwicklung und Umbrüche ... 67

       1.6 ... Java-Plattformvarianten ... 70

       1.7 ... Java SE-Implementierungen ... 75

       1.8 ... Installation des JDK und erster Start ... 78

       1.9 ... Entwicklungsumgebungen ... 84

       1.10 ... Zum Weiterlesen ... 90


  2.  Imperative Sprachkonzepte ... 91


       2.1 ... Von der Klasse zur Anweisung ... 91

       2.2 ... Lexikalische Grundlagen ... 109

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

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

       2.5 ... Bedingte Anweisungen oder Fallunterscheidungen ... 156

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

       2.7 ... Methoden deklarieren ... 193

       2.8 ... Methoden brauchen ein Zuhause: Instanz oder Klasse ... 214

       2.9 ... Zum Weiterlesen ... 220


  3.  Klassen und Objekte ... 221


       3.1 ... Objektorientierte Programmierung (OOP) ... 221

       3.2 ... Eigenschaften einer Klasse ... 223

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

       3.4 ... Neue Objekte erzeugen ... 227

       3.5 ... ZZZZZnake ... 237

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

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

       3.8 ... Der Zusammenhang von new, Heap und Garbage-Collector ... 262

       3.9 ... Zum Weiterlesen ... 264


  4.  Arrays und ihre Anwendungen ... 265


       4.1 ... Einfache Feldarbeit ... 265

       4.2 ... Die erweiterte for-Schleife ... 277

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

       4.4 ... Mehrdimensionale Arrays * ... 284

       4.5 ... Bibliotheksunterstützung von Arrays ... 290

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

       4.7 ... Der Startpunkt für das Laufzeitsystem: main(...) ... 307

       4.8 ... Zum Weiterlesen ... 310


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


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

       5.2 ... Datentypen für Zeichen und Zeichenketten ... 319

       5.3 ... Die Character-Klasse ... 320

       5.4 ... Datentypen für Zeichenketten ... 325

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

       5.6 ... Veränderbare Zeichenketten mit StringBuilder ... 359

       5.7 ... CharSequence als Basistyp ... 368

       5.8 ... Konvertieren zwischen Primitiven und Strings ... 371

       5.9 ... Strings verketten (konkatenieren) ... 379

       5.10 ... Zerlegen von Zeichenketten ... 381

       5.11 ... Ausgaben formatieren ... 386

       5.12 ... Zum Weiterlesen ... 393


  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 Klassenvariablen ... 418

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

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

       6.6 ... Klassen- und Objektinitialisierung * ... 449

       6.7 ... Zum Weiterlesen ... 458


  7.  Objektorientierte Beziehungsfragen ... 459


       7.1 ... Assoziationen zwischen Objekten ... 459

       7.2 ... Vererbung ... 470

       7.3 ... Typen in Hierarchien ... 481

       7.4 ... Methoden überschreiben ... 494

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

       7.6 ... Finale Klassen und finale Methoden ... 504

       7.7 ... Abstrakte Klassen und abstrakte Methoden ... 506

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

       7.9 ... Zum Weiterlesen und Programmieraufgabe ... 520


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


       8.1 ... Records ... 523

       8.2 ... Schnittstellen ... 535

       8.3 ... Aufzählungstypen ... 576

       8.4 ... Versiegelte Klassen und Schnittstellen ... 587

       8.5 ... Zum Weiterlesen ... 595


  9.  Ausnahmen müssen sein ... 597


       9.1 ... Problembereiche einzäunen ... 598

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

       9.3 ... Die Klassenhierarchie der Ausnahmen ... 608

       9.4 ... Abschlussbehandlung mit finally ... 618

       9.5 ... Auslösen eigener Exceptions ... 623

       9.6 ... try mit Ressourcen (automatisches Ressourcenmanagement) ... 640

       9.7 ... Besonderheiten bei der Ausnahmebehandlung * ... 650

       9.8 ... Harte Fehler -- Error * ... 655

       9.9 ... Zusicherungen im Programmcode (Assertions) * ... 656

       9.10 ... Zum Weiterlesen ... 659


10.  Geschachtelte Typen ... 661


       10.1 ... Geschachtelte Klassen, Records, Schnittstellen und Aufzählungen ... 661

       10.2 ... Statische geschachtelte Typen ... 663

       10.3 ... Nichtstatische geschachtelte Typen ... 665

       10.4 ... Lokale Klassen ... 668

       10.5 ... Anonyme innere Klassen ... 670

       10.6 ... Vermischtes ... 675

       10.7 ... Zum Weiterlesen ... 679


11.  Besondere Typen der Java SE ... 681


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

       11.2 ... Schwache Referenzen und Cleaner ... 704

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

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

       11.5 ... Wrapper-Klassen und Autoboxing ... 718

       11.6 ... Iterator, Iterable * ... 737

       11.7 ... Annotationen in der Java SE ... 745

       11.8 ... Zum Weiterlesen ... 750


12.  Generics ... 751


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

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

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

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

       12.5 ... Generics und Vererbung, Invarianz ... 784

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

       12.7 ... Zum Weiterlesen ... 806


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


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

       13.2 ... Methodenreferenz ... 831

       13.3 ... Konstruktorreferenz ... 836

       13.4 ... Funktionale Programmierung ... 839

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

       13.6 ... Optional ist keine Nullnummer ... 863

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

       13.8 ... Zum Weiterlesen ... 876


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


       14.1 ... SOLIDe Modellierung ... 877

       14.2 ... Architektur, Design und Implementierung ... 881

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

       14.4 ... Zum Weiterlesen ... 890


15.  Java Platform Module System ... 891


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

       15.2 ... Module im JPMS einbinden ... 897

       15.3 ... Eigene Module entwickeln ... 902

       15.4 ... Zum Weiterlesen ... 911


16.  Die Klassenbibliothek ... 913


       16.1 ... Die Java-Klassenphilosophie ... 913

       16.2 ... Einfache Zeitmessung und Profiling * ... 917

       16.3 ... Die Klasse Class ... 918

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

       16.5 ... Sprachen der Länder ... 929

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

       16.7 ... Date-Time-API ... 935

       16.8 ... Logging mit Java ... 940

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

       16.10 ... Zum Weiterlesen ... 945


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


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

       17.2 ... Existierende Threads und neue Threads erzeugen ... 951

       17.3 ... Der Ausführer (Executor) kommt ins Spiel ... 965

       17.4 ... Zum Weiterlesen ... 981


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


       18.1 ... Listen ... 983

       18.2 ... Mengen (Sets) ... 998

       18.3 ... Assoziative Speicher ... 1009

       18.4 ... Ausgewählte Basistypen ... 1015

       18.5 ... Java-Stream-API ... 1016

       18.6 ... Einen Stream erzeugen ... 1019

       18.7 ... Terminale Operationen ... 1022

       18.8 ... Intermediäre Operationen ... 1029

       18.9 ... Zum Weiterlesen ... 1036


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


       19.1 ... GUI-Frameworks ... 1039

       19.2 ... Abstract Window Toolkit (AWT) ... 1040

       19.3 ... Java Foundation Classes und Swing ... 1043

       19.4 ... JavaFX ... 1045

       19.5 ... Standard Widget Toolkit (SWT) * ... 1047

       19.6 ... Zum Weiterlesen ... 1048


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


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

       20.2 ... Dateisysteme und Pfade ... 1050

       20.3 ... Dateien mit wahlfreiem Zugriff ... 1060

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

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

       20.6 ... Zum Weiterlesen ... 1085


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


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

       21.2 ... Eine Beispielabfrage ... 1090

       21.3 ... Zum Weiterlesen ... 1091


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


       22.1 ... Bits und Bytes ... 1093

       22.2 ... Gleitkomma-Arithmetik in Java ... 1108

       22.3 ... Die Eigenschaften der Klasse Math ... 1114

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

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

       22.6 ... Große Zahlen * ... 1135

       22.7 ... Geld und Währung ... 1149

       22.8 ... Zum Weiterlesen ... 1151


23.  Testen mit JUnit ... 1153


       23.1 ... Softwaretests ... 1153

       23.2 ... Das Test-Framework JUnit ... 1154

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

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

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

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

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

       23.8 ... Zum Weiterlesen ... 1177


24.  Die Werkzeuge des JDK ... 1179


       24.1 ... Übersicht ... 1179

       24.2 ... Java-Quellen übersetzen ... 1180

       24.3 ... Die Java-Laufzeitumgebung ... 1182

       24.4 ... Dokumentationskommentare mit Javadoc ... 1184

       24.5 ... Das Archivformat JAR ... 1194

       24.6 ... Zum Weiterlesen ... 1197


  Anhang ... 1199


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

       B ... Referenz Schlüsselwörter ... 1217


  Index ... 1223

Autorenporträt  
Mehr Angebote zum Thema