Ullenboom | Java SE 9 Standard-Bibliothek | Buch | 978-3-8362-5874-6 | sack.de

Buch, Deutsch, 1447 Seiten, Format (B × H): 197 mm x 246 mm, Gewicht: 2462 g

Reihe: Rheinwerk Computing

Ullenboom

Java SE 9 Standard-Bibliothek

Das Handbuch für Java-Entwickler. Die zweite Java-Insel, aktuell zu Java 9
3. aktualisierte und überarbeitete Auflage 2017
ISBN: 978-3-8362-5874-6
Verlag: Rheinwerk Verlag GmbH

Das Handbuch für Java-Entwickler. Die zweite Java-Insel, aktuell zu Java 9

Buch, Deutsch, 1447 Seiten, Format (B × H): 197 mm x 246 mm, Gewicht: 2462 g

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-5874-6
Verlag: Rheinwerk Verlag GmbH


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!'

Ullenboom Java SE 9 Standard-Bibliothek jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material




  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


Ullenboom, Christian
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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.