Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Java ist auch eine Insel

Fachbuch-Bestseller
Einführung, Ausbildung, Praxis
Buch | Hardcover
1300 Seiten
2021 | 16. Auflage
Rheinwerk (Verlag)
978-3-8362-8745-6 (ISBN)

Lese- und Medienproben

Java ist auch eine Insel - Christian Ullenboom
CHF 69,85 inkl. MwSt
zur Neuauflage
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
»Was für Linuxer »Der dicke Kofler« ist, ist für Java-Freaks zweifellos »Die Insel« – ein Kultbuch.« iX – Magazin für professionelle Informationstechnik

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

Das Kultbuch für Java-Programmierer, jetzt aktuell zu Java 17.

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.

Mit diesem Standardwerk der Java-Programmierung lernen Sie die Sprache Java von A bis Z und erfahren anschaulich und praxisorientiert alles Wissenswerte zu Klassen, Objekten, Generics und Lambda-Ausdrücken. Kompakte Einführungen in Spezialthemen runden das Buch ab.

Besonders geeignet für Leser mit Grundkenntnissen in der Programmierung wie zum Beispiel Studenten oder Umsteiger von anderen Sprachen. Dazu bietet das Buch zahlreiche Beispiele und Übungen mit Musterlösungen. Keine Frage: Die Java-Insel gehört in das Regal jedes Java-Programmierers.

Java-Grundlagen verstehen
Hier lernen Sie die Sprache Java mit all ihren Merkmalen und Möglichkeiten kennen. Kein Buch bietet so tiefes Grundlagenwissen wie die Insel. Basis ist das freie, quelloffene OpenJDK.

Lernen an praxisnahen Beispielen
Nicht nur lesen, sondern selbst entwickeln und nachvollziehen. Alles wird anschaulich an praxiserprobten Beispiel-Programmen erklärt. Das Plus: Die Insel enthält besonders ausgezeichnete Infos und Tipps zur Arbeit mit Eclipse.

Die Java-Insel ist Ihr Begleiter
Für Einsteiger ist die Insel Lehr- und Arbeitsbuch, fortgeschrittenen Entwicklern bietet sie eine umfassende Referenz für die tägliche Arbeit. Sie eignet sich zudem ideal fürs Selbststudium.

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.

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.



Materialien zum Buch ... 30


Vorwort ... 31


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 * ... 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 ... JDK installieren ... 80

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

1.9 ... Entwicklungsumgebungen ... 86

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

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

2.5 ... Bedingte Anweisungen oder Fallunterscheidungen ... 160

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

2.7 ... Methoden einer Klasse ... 197

2.8 ... Zum Weiterlesen ... 223



3. Klassen und Objekte ... 225


3.1 ... Objektorientierte Programmierung (OOP) ... 225

3.2 ... Eigenschaften einer Klasse ... 227

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

3.4 ... Neue Objekte erzeugen ... 231

3.5 ... ZZZZZnake ... 243

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

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

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) ... 283

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 Zeichen und 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 ... 324

5.4 ... Zeichenfolgen ... 330

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

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

5.7 ... CharSequence als Basistyp ... 373

5.8 ... Konvertieren zwischen Primitiven und Strings ... 376

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

5.10 ... Zerlegen von Zeichenketten ... 387

5.11 ... Ausgaben formatieren ... 392

5.12 ... Zum Weiterlesen ... 398



6. Eigene Klassen schreiben ... 399


6.1 ... Eigene Klassen mit Eigenschaften deklarieren ... 399

6.2 ... Privatsphäre und Sichtbarkeit ... 411

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

6.4 ... Konstanten und Aufzählungen ... 428

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

6.6 ... Klassen- und Objektinitialisierung * ... 451

6.7 ... Zum Weiterlesen ... 460



7. Objektorientierte Beziehungsfragen ... 461


7.1 ... Assoziationen zwischen Objekten ... 461

7.2 ... Vererbung ... 471

7.3 ... Typen in Hierarchien ... 481

7.4 ... Methoden überschreiben ... 491

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

7.6 ... Finale Klassen und finale Methoden ... 501

7.7 ... Abstrakte Klassen und abstrakte Methoden ... 503

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

7.9 ... Zum Weiterlesen und Programmieraufgabe ... 517



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


8.1 ... Schnittstellen ... 519

8.2 ... Aufzählungstypen ... 552

8.3 ... Versiegelte Klassen und Schnittstellen ... 562

8.4 ... Records ... 567

8.5 ... Zum Weiterlesen ... 576



9. Ausnahmen müssen sein ... 577


9.1 ... Problembereiche einzäunen ... 578

9.2 ... Ausnahmen weiterleiten, throws am Kopf von Methoden/Konstruktoren ... 587

9.3 ... Die Klassenhierarchie der Ausnahmen ... 588

9.4 ... Abschlussbehandlung mit finally ... 597

9.5 ... Auslösen eigener Exceptions ... 603

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

9.7 ... Besonderheiten bei der Ausnahmebehandlung * ... 633

9.8 ... Harte Fehler -- Error * ... 638

9.9 ... Assertions * ... 639

9.10 ... Zum Weiterlesen ... 642



10. Geschachtelte Typen ... 643


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

10.2 ... Statische geschachtelte Typen ... 645

10.3 ... Nichtstatische geschachtelte Typen ... 647

10.4 ... Lokale Klassen ... 650

10.5 ... Anonyme innere Klassen ... 652

10.6 ... Zugriff auf lokale Variablen aus lokalen und anonymen Klassen * ... 657

10.7 ... this in Unterklassen * ... 658

10.8 ... Nester ... 660

10.9 ... Zum Weiterlesen ... 662



11. Besondere Typen der Java SE ... 663


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

11.2 ... Schwache Referenzen und Cleaner ... 688

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

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

11.5 ... Wrapper-Klassen und Autoboxing ... 703

11.6 ... Iterator, Iterable * ... 723

11.7 ... Annotationen in der Java SE ... 730

11.8 ... Zum Weiterlesen ... 736



12. Generics ... 737


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

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

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

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

12.5 ... Generics und Vererbung, Invarianz ... 769

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

12.7 ... Zum Weiterlesen ... 792



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


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

13.2 ... Methodenreferenz ... 819

13.3 ... Konstruktorreferenz ... 823

13.4 ... Funktionale Programmierung ... 827

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

13.6 ... Optional ist keine Nullnummer ... 850

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

13.8 ... Zum Weiterlesen ... 863



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


14.1 ... SOLIDe Modellierung ... 865

14.2 ... Architektur, Design und Implementierung ... 869

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

14.4 ... Zum Weiterlesen ... 877



15. Java Platform Module System ... 879


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

15.2 ... Module entwickeln und einbinden ... 885

15.3 ... Zum Weiterlesen ... 901



16. Die Klassenbibliothek ... 903


16.1 ... Die Java-Klassenphilosophie ... 903

16.2 ... Einfache Zeitmessung und Profiling * ... 910

16.3 ... Die Klasse Class ... 913

16.4 ... Klassenlader ... 917

16.5 ... Die Utility-Klassen System und Properties ... 918

16.6 ... Sprachen der Länder ... 927

16.7 ... Wichtige Datum-Klassen im Überblick ... 931

16.8 ... Date-Time-API ... 934

16.9 ... Logging mit Java ... 939

16.10 ... Maven: Build-Management und Abhängigkeiten auflösen ... 942

16.11 ... Zum Weiterlesen ... 946



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


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

17.2 ... Existierende Threads und neue Threads erzeugen ... 954

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

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

17.5 ... Zum Weiterlesen ... 989



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


18.1 ... Listen ... 991

18.2 ... Mengen (Sets) ... 1010

18.3 ... Assoziative Speicher ... 1021

18.4 ... Java-Stream-API ... 1026

18.5 ... Einen Stream erzeugen ... 1029

18.6 ... Terminale Operationen ... 1033

18.7 ... Intermediäre Operationen ... 1044

18.8 ... Zum Weiterlesen ... 1050



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


19.1 ... GUI-Frameworks ... 1051

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

19.3 ... GUI-Builder ... 1056

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

19.5 ... Grundlegendes zum Zeichnen ... 1069

19.6 ... Zum Weiterlesen ... 1075



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


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

20.2 ... Dateisysteme und Pfade ... 1079

20.3 ... Dateien mit wahlfreiem Zugriff ... 1088

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

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

20.6 ... Zum Weiterlesen ... 1112



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


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

21.2 ... Eine Beispielabfrage ... 1116

21.3 ... Zum Weiterlesen ... 1118



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


22.1 ... Bits und Bytes ... 1119

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

22.3 ... Die Eigenschaften der Klasse Math ... 1140

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

22.5 ... Zufallszahlen: Random, SecureRandom und SplittableRandom ... 1156

22.6 ... Große Zahlen * ... 1161

22.7 ... Geld und Währung ... 1174

22.8 ... Zum Weiterlesen ... 1176



23. Testen mit JUnit ... 1177


23.1 ... Softwaretests ... 1177

23.2 ... Das Test-Framework JUnit ... 1178

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

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

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

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

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

23.8 ... Zum Weiterlesen ... 1200



24. Die Werkzeuge des JDK ... 1201


24.1 ... Übersicht ... 1201

24.2 ... Java-Quellen übersetzen ... 1202

24.3 ... Die Java-Laufzeitumgebung ... 1204

24.4 ... Dokumentationskommentare mit Javadoc ... 1207

24.5 ... Das Archivformat JAR ... 1217

24.6 ... jlink: der Java Linker ... 1220

24.7 ... Zum Weiterlesen ... 1221



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


Index ... 1241

»Der Rheinwerk-Klassiker bietet Java-Programmierern einen Kurzüberblick über diverse Themen und taugt auch als Nachschlagewerk. (Feedback zur Vorauflage)« Java magazin 201909

»Das Buch richtet sich an Einsteiger*innen mit objektorientiertem Vorwissen und ist gut für das Selbststudium und als Nachschlagewerk geeignet.«

Erscheinungsdatum
Verlagsort Bonn
Sprache deutsch
Maße 190 x 240 mm
Einbandart gebunden
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
Informatik Software Entwicklung Objektorientierung
Schlagworte Datenbanken • Eclipse • Hand-Buch Grundlagen Kurse Workshops Tutorials Anleitung Training Ausbildung Studium Informatik • Hand-Buch Grundlagen Kurse Workshops Tutorials Training Ausbildung Studium Informatik • IntelliJ IDEA • Java • JDBC • JDK • JUnit • lambda • NetBeans • objektorientiert programmieren • Objektorientiert programmieren OOP • OOP • Oracle • Performanz • Programmierung • Referenz • Software-Entwicklung • XML
ISBN-10 3-8362-8745-5 / 3836287455
ISBN-13 978-3-8362-8745-6 / 9783836287456
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
Mehr entdecken
aus dem Bereich