Java SE 9 Standard-Bibliothek

Das Handbuch für Java-Entwickler. Die zweite Java-Insel, aktuell zu Java 9
Sofort lieferbar | Lieferzeit: Sofort lieferbar I
Alle Preise inkl. MwSt. | Versandkostenfrei
ISBN-13:
9783836258746
Veröffentl:
2017
Erscheinungsdatum:
01.12.2017
Seiten:
1447
Autor:
Christian Ullenboom
Gewicht:
2462 g
Format:
246x197x71 mm
Serie:
Rheinwerk Computing
Sprache:
Deutsch
Beschreibung:

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.
Datum und Zeit, JNI, Sicherheit, String-Verarbeitung


1. Vorwort ... 35


1. Neues in Java 9 ... 43


1.1 ... Klassenlader (Class Loader) und Modul-/Klassenpfad ... 43

1.2 ... Module entwickeln und einbinden ... 49

1.3 ... Sprachänderungen in Java 9 ... 64

1.4 ... Bibliotheksänderungen in Java 9 ... 65

1.5 ... Änderungen in den Werkzeugen von Java 9 ... 65

1.6 ... JDK 9-HotSpot-JVM-Änderungen ... 66

1.7 ... Zum Weiterlesen ... 66



2. Die Klassenbibliothek ... 67


2.1 ... Die Java-Klassenphilosophie ... 67

2.2 ... Die Utility-Klassen System und Properties ... 74

2.3 ... Versionskennungen auslesen, aufbauen, parsen und vergleichen ... 84

2.4 ... Einfache Benutzereingaben ... 86

2.5 ... Benutzereinstellungen * ... 88

2.6 ... Maven: Build-Management und Abhängigkeiten auflösen ... 95

2.7 ... Zum Weiterlesen ... 99



3. Fortgeschrittene String-Verarbeitung ... 101


3.1 ... Erweiterte Zeicheneigenschaften ... 101

3.2 ... Reguläre Ausdrücke ... 104

3.3 ... Zerlegen von Zeichenketten ... 122

3.4 ... Zeichenkodierungen, XML/HTML-Entities, Base64 * ... 137

3.5 ... Ausgaben formatieren ... 142

3.6 ... Sprachabhängiges Vergleichen und Normalisierung * ... 154

3.7 ... Phonetische Vergleiche * ... 159

3.8 ... Zum Weiterlesen ... 160



4. Datenstrukturen und Algorithmen ... 161


4.1 ... Datenstrukturen und die Collection-API ... 161

4.2 ... Listen ... 173

4.3 ... Mengen (Sets) ... 191

4.4 ... Queues (Schlangen) und Deques ... 201

4.5 ... Stack (Kellerspeicher, Stapel) ... 209

4.6 ... Assoziative Speicher ... 211

4.7 ... Immutable Datenstrukturen ... 235

4.8 ... Mit einem Iterator durch die Daten wandern ... 245

4.9 ... Algorithmen in Collections ... 255

4.10 ... Datenstrukturen mit Änderungsmeldungen ... 268

4.11 ... Stream-API ... 278

4.12 ... Spezielle threadsichere Datenstrukturen ... 317

4.13 ... Google Guava (Google Collections Library) ... 327

4.14 ... Die Klasse BitSet für Bitmengen * ... 332

4.15 ... Zum Weiterlesen ... 338



5. Threads und nebenläufige Programmierung ... 339


5.1 ... Threads erzeugen ... 339

5.2 ... Thread-Eigenschaften und Zustände ... 344

5.3 ... Der Ausführer (Executor) kommt ... 360

5.4 ... Synchronisation über kritische Abschnitte ... 372

5.5 ... Synchronisation über Warten und Benachrichtigen ... 396

5.6 ... Datensynchronisation durch besondere Concurrency-Klassen * ... 408

5.7 ... Atomare Operationen und frische Werte mit volatile * ... 414

5.8 ... Teile und herrsche mit Fork und Join * ... 418

5.9 ... Mit dem Thread verbundene Variablen * ... 424

5.10 ... Threads in einer Thread-Gruppe * ... 430

5.11 ... Reaktive Programmierung und die Flow-API * ... 438

5.12 ... Zeitgesteuerte Abläufe ... 440

5.13 ... Ausführen externer Programme, Starten von Prozessen * ... 442

5.14 ... Den Stack-Trace erfragen * ... 450

5.15 ... Einen Abbruch der virtuellen Maschine erkennen ... 455

5.16 ... Zum Weiterlesen ... 457



6. Raum und Zeit ... 459


6.1 ... Sprachen der Länder ... 459

6.2 ... Internationalisierung und Lokalisierung ... 463

6.3 ... Weltzeit * ... 468

6.4 ... Wichtige Datum-Klassen im Überblick ... 469

6.5 ... Die Klasse Date ... 472

6.6 ... Date-Time-API ... 474

6.7 ... Calendar und GregorianCalendar ... 504

6.8 ... Zeitzonen in Java * ... 517

6.9 ... Formatieren und Parsen von Date-Objekten ... 520

6.10 ... Die Default-Falle ... 528

6.11 ... Zum Weiterlesen ... 529



7. Dateien, Verzeichnisse und Dateizugriffe ... 531


7.1 ... Alte und neue Welt in java.io und java.nio ... 531

7.2 ... Dateisysteme und Pfade ... 533

7.3 ... Datei- und Verzeichnisoperationen mit der Klasse File ... 569

7.4 ... Dateien mit wahlfreiem Zugriff ... 585

7.5 ... Wahlfreier Zugriff mit SeekableByteChannel und ByteBuffer * ... 591

7.6 ... Zum Weiterlesen ... 595



8. Datenströme ... 597


8.1 ... Basisklassen für die Ein-/Ausgabe ... 597

8.2 ... Lesen aus Dateien und Schreiben in Dateien ... 610

8.3 ... Übersicht über Ein-/Ausgabeklassen ... 616

8.4 ... Formatierte Textausgaben ... 620

8.5 ... Die FileXXX-Stromklassen ... 628

8.6 ... Schreiben und Lesen aus Strings und Byte-Feldern ... 635

8.7 ... Datenströme filtern und verketten ... 640

8.8 ... Vermittler zwischen Byte-Streams und Unicode-Strömen ... 653

8.9 ... Kommunikation zwischen Threads mit Pipes * ... 657

8.10 ... Prüfsummen ... 660

8.11 ... Persistente Objekte und Serialisierung ... 664

8.12 ... Alternative Datenaustauschformate ... 685

8.13 ... Zum Weiterlesen ... 688



9. Dateiformate ... 689


9.1 ... Einfache Dateiformate für strukturierte Daten ... 690

9.2 ... Dokumentenformate ... 694

9.3 ... Datenkompression * ... 697

9.4 ... Bildformate ... 711

9.5 ... Audiodateien ... 711

9.6 ... Zum Weiterlesen ... 715



10. Die eXtensible Markup Language (XML) und JSON ... 717


10.1 ... Auszeichnungssprachen ... 717

10.2 ... Eigenschaften von XML-Dokumenten ... 718

10.3 ... Die Java-APIs für XML ... 729

10.4 ... Java Architecture for XML Binding (JAXB) ... 732

10.5 ... Serielle Verarbeitung mit StAX ... 755

10.6 ... Serielle Verarbeitung von XML mit SAX * ... 768

10.7 ... XML-Dateien mit JDOM verarbeiten ... 772

10.8 ... Transformationen mit XSLT * ... 794

10.9 ... XML-Schema-Validierung * ... 797

10.10 ... JSON-Serialisierung mit Jackson-Datenformat ... 799

10.11 ... Zum Weiterlesen ... 803



11. Netzwerkprogrammierung ... 805


11.1 ... Grundlegende Begriffe ... 805

11.2 ... URI und URL ... 807

11.3 ... URL-Parameter kodieren ... 812

11.4 ... Die Klassen URLConnection und HttpURLConnection ... 813

11.5 ... Host- und IP-Adressen ... 822

11.6 ... Socket-Verbindungen ... 827

11.7 ... HTTP Client API in Java 9 ... 841

11.8 ... Neue externe Netzwerkbibliotheken * ... 843

11.9 ... Arbeitsweise eines Webservers * ... 844

11.10 ... Verbindungen durch einen Proxy-Server * ... 853

11.11 ... Bidirektionale binäre Webkommunikation über WebSockets * ... 855

11.12 ... Datagram-Sockets * ... 856

11.13 ... Tiefer liegende Netzwerkeigenschaften * ... 862

11.14 ... Zum Weiterlesen ... 863



12. RESTful und SOAP-Web-Services ... 865


12.1 ... Web-Services ... 865

12.2 ... RESTful Web-Services ... 866

12.3 ... Daily Soap und das SOAP-Protokoll ... 868

12.4 ... Zum Weiterlesen ... 874



13. Verteilte Programmierung mit RMI ... 875


13.1 ... Entfernte Objekte und Methoden ... 875

13.2 ... Java Remote Method Invocation ... 877

13.3 ... Auf der Serverseite ... 881

13.4 ... Auf der Client-Seite ... 889

13.5 ... Entfernte Objekte übergeben und laden ... 890

13.6 ... Automatische Remote-Objekt-Aktivierung ... 891

13.7 ... Java Message Service (JMS) ... 892

13.8 ... Zum Weiterlesen ... 892



14. Typen, Reflection und Annotationen ... 895


14.1 ... Metadaten ... 895

14.2 ... Die Klasse Class ... 896

14.3 ... Klassenlader ... 899

14.4 ... Metadaten der Typen mit dem Class-Objekt ... 905

14.5 ... Attribute, Methoden und Konstruktoren ... 915

14.6 ... Objekte erzeugen und manipulieren ... 927

14.7 ... Schneller aufrufen mit MethodType und MethodHandle ... 941

14.8 ... Eigene Annotationstypen * ... 942

14.9 ... Zum Weiterlesen ... 962



15. Logging und Monitoring ... 963


15.1 ... Logging mit Java ... 963

15.2 ... Systemzustände überwachen ... 976

15.3 ... MBean-Typen, MBean-Server und weitere Begriffe ... 976

15.4 ... Geschwätzige Programme und JConsole ... 979

15.5 ... Der MBeanServer ... 981

15.6 ... Eine eigene Standard-MBean ... 982

15.7 ... Zum Weiterlesen ... 986



16. Datenbankmanagement mit JDBC ... 987


16.1 ... Relationale Datenbanken und Datenbankmanagementsysteme ... 987

16.2 ... JDBC und Datenbanktreiber ... 993

16.3 ... Eine Beispielabfrage ... 995

16.4 ... Mit Java an eine Datenbank andocken ... 996

16.5 ... Datenbankabfragen ... 1003

16.6 ... Elemente einer Datenbank ändern ... 1013

16.7 ... Die Ausnahmen bei JDBC, SQLException und Unterklassen ... 1016

16.8 ... ResultSet und RowSet * ... 1019

16.9 ... Vorbereitete Anweisungen (Prepared Statements) ... 1023

16.10 ... Transaktionen ... 1026

16.11 ... Vorbereitete Datenbankverbindungen ... 1027

16.12 ... Zum Weiterlesen ... 1031



17. Grafische Oberflächen mit Swing ... 1033


17.1 ... AWT, JavaFoundation Classes und Swing ... 1033

17.2 ... Mit NetBeans zur ersten Swing-Oberfläche ... 1038

17.3 ... Aller Swing-Anfang -- Fenster zur Welt ... 1049

17.4 ... Beschriftungen (JLabel) ... 1057

17.5 ... Icon und ImageIcon für Bilder auf Swing-Komponenten ... 1060

17.6 ... Es tut sich was -- Ereignisse beim AWT ... 1062

17.7 ... Schaltflächen ... 1076

17.8 ... Textkomponenten ... 1081

17.9 ... Swing Action * ... 1093

17.10 ... JComponent und Component als Basis aller Komponenten ... 1095

17.11 ... Container ... 1108

17.12 ... Alles Auslegungssache -- die Layoutmanager ... 1112

17.13 ... Rollbalken und Schieberegler ... 1126

17.14 ... Kontrollfelder, Optionsfelder, Kontrollfeldgruppen ... 1131

17.15 ... Fortschritte bei Operationen überwachen * ... 1137

17.16 ... Menüs und Symbolleisten ... 1139

17.17 ... Das Model-View-Controller-Konzept ... 1155

17.18 ... Auswahlmenüs, Listen und Spinner ... 1157

17.19 ... Tabellen (JTable) ... 1172

17.20 ... Bäume (JTree) ... 1187

17.21 ... Dialoge und Window-Objekte ... 1192

17.22 ... Flexibles Java-Look-and-Feel ... 1201

17.23 ... Swing-Komponenten neu erstellen oder verändern * ... 1203

17.24 ... Die Zwischenablage (Clipboard) ... 1206

17.25 ... AWT, Swing und die Threads ... 1211

17.26 ... Barrierefreiheit mit der Java Accessibility API ... 1219

17.27 ... Zeitliches Ausführen mit dem javax.swing.Timer ... 1220

17.28 ... Zum Weiterlesen ... 1221



18. Grafikprogrammierung ... 1223


18.1 ... Grundlegendes zum Zeichnen ... 1223

18.2 ... Einfache Zeichenmethoden ... 1229

18.3 ... Zeichenketten schreiben und Fonts ... 1233

18.4 ... Geometrische Objekte ... 1239

18.5 ... Das Innere und Äußere einer Form ... 1242

18.6 ... Bilder ... 1249

18.7 ... Weitere Eigenschaften von Graphics * ... 1263

18.8 ... Drucken * ... 1271

18.9 ... Benutzerinteraktionen automatisieren, Robot und Screenshots * ... 1274

18.10 ... Zum Weiterlesen ... 1280



19. JavaFX ... 1281


19.1 ... Das erste Programm mit JavaFX ... 1281

19.2 ... Zentrale Typen in JavaFX ... 1284

19.3 ... JavaFX-Komponenten und Layout-Container-Klassen ... 1286

19.4 ... Webbrowser ... 1290

19.5 ... Geometrische Objekte ... 1291

19.6 ... Füllart von Formen ... 1304

19.7 ... Grafiken ... 1308

19.8 ... Deklarative Oberflächen mit FXML ... 1313

19.9 ... Diagramme (Charts) ... 1315

19.10 ... Animationen ... 1319

19.11 ... Medien abspielen ... 1322

19.12 ... Java 3D ... 1323

19.13 ... Das Geometry-Paket * ... 1323

19.14 ... JavaFX-Scene in Swing-Applikationen einbetten ... 1324

19.15 ... Zum Weiterlesen ... 1326



20. Sicherheitskonzepte ... 1327


20.1 ... Zentrale Elemente der Java-Sicherheit ... 1327

20.2 ... Sicherheitsmanager (Security-Manager) ... 1330

20.3 ... Signierung ... 1338

20.4 ... Kryptografische Hashfunktion ... 1341

20.5 ... Verschlüsseln von Daten(-strömen) * ... 1346

20.6 ... Zum Weiterlesen ... 1349



21. Dynamische Übersetzung, Skriptsprachen, JShell ... 1351


21.1 ... Codegenerierung ... 1352

21.2 ... Programme mit der Java Compiler API übersetzen ... 1356

21.3 ... Ausführen von Skripten ... 1366

21.4 ... JShell, die interaktive REPL-Shell ... 1375

21.5 ... Zum Weiterlesen ... 1381



22. Java Native Interface (JNI) ... 1383


22.1 ... Java Native Interface und Invocation-API ... 1383

22.2 ... Eine C-Funktion in ein Java-Programm einbinden ... 1384

22.3 ... Dynamische Bibliotheken erzeugen ... 1386

22.4 ... Erweiterte JNI-Eigenschaften ... 1392

22.5 ... Einfache Anbindung von existierenden Bibliotheken ... 1397

22.6 ... Invocation-API ... 1399

22.7 ... Zum Weiterlesen ... 1400



23. Dienstprogramme für die Java-Umgebung ... 1401


23.1 ... Programme des JDK ... 1401

23.2 ... Monitoringprogramme vom JDK ... 1401

23.3 ... Ant ... 1411

23.4 ... Disassembler, Decompiler und Obfuscator ... 1417

23.5 ... Weitere Dienstprogramme ... 1426

23.6 ... Zum Weiterlesen ... 1426



Index ... 1427

Die Fortsetzung des Java-Kultbuchs für Entwickler! Hier bekommen Sie umfassendes und kompetentes Praxiswissen zu den vielen Bibliotheken und Technologien in einem Band. Am Beispiel konkreter Java-Projekte zeigt Christian Ullenboom, was man wissen muss über Swing/JavaFX, Netzwerk- und Grafikprogrammierung, RMI und Web-Services, JDBC, Reflection und Annotationen, Logging und Monitoring, Java Native Interface (JNI) und vieles mehr. Dieses Buch ist Ihr unersetzlicher Begleiter bei der täglichen Arbeit!

Aus dem Inhalt:

  • Neues in Java 9
  • Threads und nebenläufige Programmierung
  • Datenstrukturen und Algorithmen
  • Raum und Zeit
  • Dateien, Verzeichnisse und Dateizugriffe
  • Datenströme
  • eXtensible Markup Language
  • Grafische Oberflächen mit Swing/JavaFX
  • Grafik- und Netzwerkprogrammierung
  • Verteilte Programmierung mit RMI
  • Datenbankmanagement mit JDBC
  • Reflection und Annotationen
  • Logging und Monitoring


Die Fachpresse zur Vorauflage:

iX - Magazin für professionelle Informationstechnik: »Ein »Wunderwerk««

PHP Nuke: »Ein wichtiges Java-Standardwerk! Der Schreibstil ist fantastisch. «

cc13.com: »Unverzichtbares Nachschlagewerk, uneingeschränkt zu empfehlen!«

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.