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.
Von Ausdrücken und Anweisungen zu Klassen und Objekten
Autorentext
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.
Inhalt
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 .…
Von Ausdrücken und Anweisungen zu Klassen und Objekten
Autorentext
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.
Inhalt
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 .…
Titel
Java ist auch eine Insel
Untertitel
Einführung, Ausbildung, Praxis
Autor
EAN
9783836295468
Format
E-Book (epub)
Hersteller
Veröffentlichung
06.12.2023
Digitaler Kopierschutz
frei
Dateigrösse
34 MB
Anzahl Seiten
1223
Lesemotiv
Unerwartete Verzögerung
Ups, ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.