Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de
Java 5.0 - Das Tiger-Release: Konzepte, Grundlagen und Erweiterungen in 5.0 -  Andreas Eberhart,  Stefan Kraus,  Ulrich Walther,  Horst Hellbrück,  Vasu Chandrasekhara

Java 5.0 - Das Tiger-Release: Konzepte, Grundlagen und Erweiterungen in 5.0 (eBook)

eBook Download: PDF
2004 | 1. Auflage
461 Seiten
Carl Hanser Fachbuchverlag
978-3-446-40059-7 (ISBN)
Systemvoraussetzungen
29,90 inkl. MwSt
(CHF 29,20)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Alles, was neu ist in Java 5.0!

Die neue Version 5.0 von Java enthält viele Änderungen und Verbesserungen, auf die Java-Entwickler lange gewartet haben. Dieses Buch zeigt, welchen Einfluss diese Änderungen auf die Programmierung mit Java haben und wie der Versionswechsel in der Praxis funktioniert.

Zunächst erläutern die Autoren die Grundlagen der objektorientierten Programmierung mit Java, stellen die Java-Laufzeitumgebung und die Java Virtual Machine vor. Zahlreiche Praxisbeispiele zeigen ausführlich die neuen Konzepte von Java 5.0. Der Leser erfährt, wie er z.B. Generische Datentypen, neue Schleifentypen, Enumerationen, variable Parameterübergabe und Method Annotations anwenden kann. Die Autoren zeigen, wie die Neuerungen kompatibel zu bestehenden Projekten eingesetzt werden. Sie geben Empfehlungen für die Migration auf Java 5.0 und zeigen, wie die neue Sprachversion von verschiedenen Entwicklungswerkzeugen (z.B. Plugins für Eclipse) unterstützt wird.

Die Highlights: - Topaktuell zu Java 5.0
- Zahlreiche anschauliche Praxisbeispiele
- Tipps zum Wechsel von Java 1.4 zu 5.0

Pressestimmen

"Das Buch ist jeden Cent wert. Kurz und knapp - eins der besten Java-Bücher, die ich bis jetzt in der Hand hatte. Leicht und verständlich lesbar. Für Anfänger wie auch für Fortgeschrittene empfehlenswert. (...) Großes Lob an die Autoren." PostNuke.de

Die Autoren

Vasu Chandrasekhara, Dipl.-Physiker, ist Mitgründer der quadox AG und arbeitet dort im Bereich SAP NetWeaver und SAP Business Intelligence. Er hat bei global tätigen Firmen die Einführung von SAP-Projekten unterstützt und konnte insbesondere Erfahrung bei komplexen heterogenen Landschaften im Enterprise Umfeld sammeln.

Dr. Andreas Eberhart promovierte an der Universität des Saarlandes. Er ist derzeit Wissenschaftlicher Assistent am AIFB der Universität Karlsruhe und dort verantwortlich für mehrere Forschungsprojekte im Bereich Semantic Web. Er lehrt über Datenbanken, Transaktionsverarbeitung und intelligente webbasierte Systeme. Er ist Ko-Autor mehrerer Bücher zu den Themen Web Services, Java und XML.

Dr. Horst Hellbrück arbeitet im Bereich Engineering bei Roche Diagnostics GmbH und projektiert Automatisierungsanlagen für Pharma und Diagnostics. Nach dem Studium der Elektrotechnik vertiefte er seine Software-Kenntnisse bei der Entwicklung lebenserhaltender Medizingeräte und promovierte erfolgreich an der TU Braunschweig mit Schwerpunkt Ad-Hoc Netze im Bereich Netzwerk und Verteilte Systeme.

Stefan Kraus promoviert zurzeit am Interdisziplinären Zentrum für Wissenschaftliches Rechnen (IWR) der Universität Heidelberg im Bereich Informatik und befasst sich dort mit der Optimierung von Auswertealgorithmen zur Analyse spektraler Bilddaten. Außerdem ist er an der Entwicklung diverser Industrieprojekte der CodeArts GmbH beteiligt.

Dr. Ulrich Walther promovierte an der TU Braunschweig und arbeitete in mehrjährigen Forschungsprojekten mit den Schwerpunkten Netzwerke und verteilte Systeme. Er ist gegenwärtig Geschäftsführer der CodeArts GmbH und leitet dort verschiedene Forschungs- und Beratungsprojekte für die Industrie.

Inhaltsverzeichnis 8
Einführung in Java 16
Motivation 16
Historie und Entstehung 17
Grundlegende Eigenschaften von Java 19
Einfachheit 19
Objektorientiertheit 20
Netzwerkfähigkeit 21
Java Interpreter 21
Robustheit 21
Sicherheit 22
Plattformunabhängigkeit und Portabilität 22
Performanz 23
Nebenläufigkeit 24
Dynamik 24
Offenheit 24
Was Java nicht leistet 25
Objektorientierter Entwurf und Programmierung 26
Abstraktion 28
Information Hiding 28
Kapselung 29
Vererbung 29
Polymorphismus 30
Design Pattern 30
Ein kleines Java-Glossar 31
Die verschiedenen Java-Versionen 31
J2ME, J2SE und J2EE -- Was ist wo drin? 34
Was ist JavaScript, JScript, J++ und C#? 37
Die Web-Seite zum Buch 40
Aufbau des Buchs 40
Die Java Laufzeitumgebung 42
Die Java Virtual Machine 42
Ausführung von Programmen 43
Performanz der virtuellen Maschinen 44
Plattformunabhängige Bytecode-Instruktionen 45
Kurzübersicht über die Bytecode-Instruktionen 46
Ein Beispielprogramm und der disassemblierte Bytecode 50
Sprachkonstrukte bis Java Version 1.4 52
Anweisungen, Blöcke und Schlüsselwörter 52
Datentypen, Variablen, Arrays 53
Variablen 54
Datentypen 57
Wahrheitswerte 58
Zeichen 58
Ganzzahlwerte 59
Fließkommawerte 60
Typumwandlungen 61
Operatoren 63
Operatorentypen 63
Zuweisungsoperator 63
Arithmetische Operatoren 64
Bitoperatoren 65
Relationale und logische Operatoren 67
Vergleichsoperator 68
Operatorenverknüpfung 69
Operatorenreihenfolge 69
Kontrollfluss 70
Bedingter Programmfluss 70
Schleifen 76
Klassen 82
Bestandteile einer Klasse 82
Attribute 82
Anlegen eines Objekts einer Klasse 83
Direkter Zugriff auf Attribute mittels Selektor 83
Assoziation -- Referenzen auf Objekte 84
Methoden 84
Bestandteile einer Methode 85
Der Konstruktor 87
Die main-Methode 88
Spezielles bei der Verwendung von Klassen 90
Modifizierer innerhalb von Klassen 90
Veraltete Methoden 93
Assoziationen zwischen Klassen 95
Innere Klassen 96
Vererbung 101
Merkmale wieder verwenden und neue hinzufügen 101
Typanpassung 104
Abändern von vererbten Merkmalen 106
Grenzen der Vererbung 114
Die Basisklasse Object 116
Abstrakte Klassen 120
Modularisierung mittels package 123
Kapselung und Zugriffskontrolle 125
Schnittstellen -- Interface 126
Fehlerverarbeitung -- Exceptions 129
Prüfeinrichtung -- Assertion Facility 133
Nebenläufigkeit und Synchronisation 136
Arbeiten mit Threads 137
Synchronisation 143
Lebenszyklus von Threads 150
Bibliotheken bis einschließlich Java Version 1.4 154
Ein- und Ausgabesteuerung (java.io) 154
Dateien und Verzeichnisse 154
Datenströme 156
Datenformatierung 156
Komprimierte Daten (java.util.zip und java.util.jar) 159
Netzwerkzugriff (java.net) 161
Client Server 166
UDP 167
TCP 172
URL 176
Zusammenfassung und Ausblick 178
RMI Remote Method Invocation 180
Remote Interface 183
Implementierung des Server-Objekts 183
Naming -- der Namensdienst 184
RMI-Übersetzer 185
Implementierung des Client 189
RMI -- Spezielles 189
Verteilter Garbage-Kollektor 191
Datenbankzugriff (java.sql, javax.sql) 191
Warum Datenbanken? 192
Relationale Modellierung 194
SQL -- Die intergalaktische Datenverarbeitungssprache 195
Zugriff von Datenbank-Klienten mit JDBC 198
Eingebettetes SQL 213
XML (javax.xml) 216
XML -- Das neue ASCII 216
XML, HTML und XHTML 219
Namespaces 219
XML Schema 220
JAXP -- Java API for XML Processing 223
SAX -- Simple API for XML 224
DOM -- Document Object Model 225
Erstellung von XML-Dokumenten 227
Validierung von XML-Dokumenten 228
Java, XML und Datenbanken 229
XPath-Anfragen 232
XSLT-Transformationen 233
Das Java Collections Framework (java.util) 238
Was ist ein Collections Framework? 239
Schnittstellen des Collections Framework 241
Das Collection Interface 242
Das Set Interface 245
Das List Interface 249
Das Map Interface 256
Ordnung von Objekten 262
Das SortedSet Interface 267
Das SortedMap Interface 270
Zusammenfassung 272
Spracherweiterungen der Java Version 5.0 274
Generische Datentypen 274
Parametrisierte oder generische Datentypen 275
Typwandlung zwischen generischen Klassen 279
Wildcards für parametrisierte Typen 280
Parametrisierte Schnittstellen 281
Parametrisierte Methoden 282
Sonderfälle 284
Wildcards oder parametrisierte Methoden? 287
Interoperabilität mit vorhandenen Applikationen 288
Zusammenfassung 291
Vereinfachte Schleifen (foreach) 291
Autoboxing/Unboxing 293
Enumeration 295
Variable Parameterübergabe 304
Static Imports 308
Metadaten 309
Bestehende Mechanismen zur Verwaltung von Metadaten 310
Motivation für generische Metadaten 314
Deklaration von Metadaten 315
Wann Annotationen, wann normale Java-Konstrukte? 317
Annotationen instantiieren 317
Pakete 319
Meta-Annotationen 321
Fehlervermeidung durch Override 325
Annotationen lesen 327
Erweiterungen in den Bibliotheken 334
Collections: Vereinfachung mit Generics (java.util) 334
Das Collection Interface 334
Das Set Interface 337
Das List Interface 338
Das Map Inteface 339
Das Queue Interface 340
Hilfreiche Erweiterungen in java.util.Collections 341
Ordnung von Objekten 344
Zusammenfassung 346
Parallele Programmierung (java.util.concurrent) 346
Synchronisation 346
Synchronisierter Datenaustausch 360
Threadverwaltung 362
Zusammenfassung 367
Pack200 Network File Transfer Format 368
Verkettete Fehler -- Chained Exception Facility 370
XML 371
XML 1.1 und Namespaces 371
DOM Level 3 372
SAX 374
XML Schema 375
XPath 376
XLST Compiler 377
Java Web Services Developer Pack 378
JDBC RowSets 380
Die RowSet-Referenz-Implementierung 381
Unterstützung durch den Datenbanktreiber 383
Weiterführende Funktionalität durch RowSets 385
RowSet Listeners 389
RowSets für die Grafische Benutzerschnittstelle 393
Zusammenfassung 396
RMI 396
Dynamische Erzeugung der Stellvertreter-Klassen 396
Verwendung der Standard SSL/TLS Socket Factory-Klassen 404
Aktivierung von RMI-Servern 406
Verbesserte Ankopplung an das Betriebssystem 409
Interaktion mit dem Betriebssystem 410
Werkzeuge 414
javac -- Der Übersetzer 414
java -- Der Java-Interpreter 416
Class Data Sharing 418
javadoc -- Das Dokumentationswerkzeug 419
Doclets 422
Taglets 422
keytool -- Schlüssel- und Zertifikatsverwaltung 423
genkey -- Anlegen eines neuen Keystore 424
list -- Anzeigen von Zertifikaten im Keystore 425
certreq -- Zertifikat von Trust Center signieren lassen 426
Testweise Signierung eines eigenen Trust Centers 427
printcert -- X.509 Zertifikate einsehen 427
rmiregistry 427
rmid 428
rmic 429
Entwicklungsumgebung -- IDE 429
Zusammenfassung und Ausblick 436
Übersicht der Neuerungen 436
Künftige Erweiterungen 438
Stichwortverzeichnis 446

Kapitel 5 Spracherweiterungen der Java Version 5.0 (S. 259-260)

5.1 Generische Datentypen

Die Einführung generischer Datentypen, oft auch Generics, Generizität, parametrisierte oder generische Datentypen genannt, ist wahrscheinlich eine der am längsten erwarteten Spracherweiterungen von Java. Am bekanntesten sind generische Datentypen sicher aus der Welt von C++, wo die so genannten Templates (zu deutsch etwa Schablonen) die Nutzung generischer Datentypen ermöglichen und schon vom ersten Tag an in der Sprachspezifikation von C++ enthalten waren. Hierbei muss erwähnt werden, dass die Realisierung von Templates in C++ jedoch v¨ ollig unterschiedlich im Vergleich zur Realisierung generischer Typen in Java ist. Hierzu im nächsten Abschnitt mehr.

Sehr fr ¨uh nach Veröffentlichung des JDK 1.0 im Jahre 1996 wurden jedoch alternative Spracherweiterungen wie etwa Pizza schon im gleichen Jahr 1996 bekannt, die unter anderem bereits parametrisierte Typen unterstützten und in regulären Java-Bytecode umsetzten. Aus Pizza ging schließlich auch die Weiterentwicklung GJ (Generic Java) hervor, die letztlich die Grundlage für die Generics im neuen Java in der Version 5.0 darstellt.

Zunächst einmal soll die Frage beantwortet werden, warum man denn generische Datentypenüberhaupt benutzen soll. Da man die ersten acht Jahre in Java auch ohne auskam, ist dies sicherlich eine berechtigte Frage. Durch die Vererbungshierarchie sind in Java alle Klassen Spezialisierungen der Klasse Object, daher kann man einen Platzhalter für einen beliebigen (nicht primitiven) Datentyp stets als Typ Object deklarieren. Da es viele Algorithmen gibt, die man unabhängig vom Datentyp spezifizieren kann, wie etwa das Suchen in oder Sortieren von Listen, ist es sinnvoll, diese Algorithmen etwa auf Arrays oder Listen vom Typ Object operieren zu lassen. Denn dann kann man diesen Algorithmus mit beliebigen Eingabetypen füttern und muss ihn nicht für jeden Typ nochmals neu aufschreiben. Diese Eigenschaft wird auch Polymorphie oder Polymorphismus (griechisch Vielgestaltigkeit) genannt. Die dazugehörigen Klassen heißen dann polymorphe Klassen, die zugehörigen Methoden polymorphe Methoden.

Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
ISBN-10 3-446-40059-1 / 3446400591
ISBN-13 978-3-446-40059-7 / 9783446400597
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 3,6 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich