Installieren Sie die genialokal App auf Ihrem Startbildschirm für einen schnellen Zugriff und eine komfortable Nutzung.
Tippen Sie einfach auf Teilen:
Und dann auf "Zum Home-Bildschirm [+]".
Bei genialokal.de kaufen Sie online bei Ihrer lokalen, inhabergeführten Buchhandlung!
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 18. 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. Die Fachpresse zur Vorauflage: mediennerd.de: »Ein wertvolles Lehr- und Arbeitsbuch für fortgeschrittene Java-Programmierer und bietet eine umfassende Referenz für den täglichen Gebrauch.«
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. Christian Ullenboom bietet auch Rheinwerk Seminare zu Java und Spring an.
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