Rheinwerk Computing < openbook >


 
Inhaltsverzeichnis
Materialien zum Buch
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Arrays und ihre Anwendungen
5 Der Umgang mit Zeichen und Zeichenketten
6 Eigene Klassen schreiben
7 Objektorientierte Beziehungsfragen
8 Schnittstellen, Aufzählungen, versiegelte Klassen, Records
9 Ausnahmen müssen sein
10 Geschachtelte Typen
11 Besondere Typen der Java SE
12 Generics<T>
13 Lambda-Ausdrücke und funktionale Programmierung
14 Architektur, Design und angewandte Objektorientierung
15 Java Platform Module System
16 Die Klassenbibliothek
17 Einführung in die nebenläufige Programmierung
18 Einführung in Datenstrukturen und Algorithmen
19 Einführung in grafische Oberflächen
20 Einführung in Dateien und Datenströme
21 Einführung ins Datenbankmanagement mit JDBC
22 Bits und Bytes, Mathematisches und Geld
23 Testen mit JUnit
24 Die Werkzeuge des JDK
A Java SE-Module und Paketübersicht
Stichwortverzeichnis


Buch bestellen
Ihre Meinung?



Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenboom

Einführung, Ausbildung, Praxis
Buch: Java ist auch eine Insel


Java ist auch eine Insel

Pfeil 1 Java ist auch eine Sprache
Pfeil 1.1 Historischer Hintergrund
Pfeil 1.2 Warum Java populär ist – die zentralen Eigenschaften
Pfeil 1.2.1 Bytecode
Pfeil 1.2.2 Ausführung des Bytecodes durch eine virtuelle Maschine
Pfeil 1.2.3 Plattformunabhängigkeit
Pfeil 1.2.4 Java als Sprache, Laufzeitumgebung und Standardbibliothek
Pfeil 1.2.5 Objektorientierung in Java
Pfeil 1.2.6 Java ist verbreitet und bekannt
Pfeil 1.2.7 Java ist schnell – Optimierung und Just-in-time-Compilation
Pfeil 1.2.8 Das Java-Security-Modell
Pfeil 1.2.9 Zeiger und Referenzen
Pfeil 1.2.10 Bring den Müll raus, Garbage-Collector!
Pfeil 1.2.11 Ausnahmebehandlung
Pfeil 1.2.12 Das Angebot an Bibliotheken und Werkzeugen
Pfeil 1.2.13 Vergleichbar einfache Syntax
Pfeil 1.2.14 Java ist Open Source
Pfeil 1.2.15 Wofür sich Java weniger eignet
Pfeil 1.3 Java im Vergleich zu anderen Sprachen *
Pfeil 1.3.1 Java und C(++)
Pfeil 1.3.2 Java und JavaScript
Pfeil 1.3.3 Ein Wort zu Microsoft, Java und zu J++
Pfeil 1.3.4 Java und C#/.NET
Pfeil 1.4 Weiterentwicklung und Verluste
Pfeil 1.4.1 Die Entwicklung von Java und seine Zukunftsaussichten
Pfeil 1.4.2 Features, Enhancements (Erweiterungen) und ein JSR
Pfeil 1.4.3 Applets
Pfeil 1.4.4 JavaFX
Pfeil 1.5 Java-Plattformen: Java SE, Jakarta EE, Java ME, Java Card
Pfeil 1.5.1 Die Java SE-Plattform
Pfeil 1.5.2 Java ME: Java für die Kleinen
Pfeil 1.5.3 Java für die ganz, ganz Kleinen
Pfeil 1.5.4 Java für die Großen: Jakarta EE (ehemals Java EE)
Pfeil 1.5.5 Echtzeit-Java (Real-time Java)
Pfeil 1.6 Java SE-Implementierungen
Pfeil 1.6.1 OpenJDK
Pfeil 1.6.2 Oracle JDK
Pfeil 1.7 JDK installieren
Pfeil 1.7.1 Oracle JDK unter Windows installieren
Pfeil 1.8 Das erste Programm compilieren und testen
Pfeil 1.8.1 Ein Quadratzahlen-Programm
Pfeil 1.8.2 Der Compilerlauf
Pfeil 1.8.3 Die Laufzeitumgebung
Pfeil 1.8.4 Häufige Compiler- und Interpreter-Probleme
Pfeil 1.9 Entwicklungsumgebungen
Pfeil 1.9.1 IntelliJ IDEA
Pfeil 1.9.2 Eclipse IDE
Pfeil 1.9.3 NetBeans
Pfeil 1.10 Zum Weiterlesen
 

Zum Seitenanfang

1.6    Java SE-Implementierungen Zur vorigen ÜberschriftZur nächsten Überschrift

Die Java SE-Plattform ist im Grunde nur eine Spezifikation und keine Implementierung. Damit Programme übersetzt und ausgeführt werden können, brauchen wir einen konkreten Compiler, eine Laufzeitumgebung und eine Implementierung der Bibliotheken. Es gibt unterschiedliche Implementierungen verschiedener Hersteller. Bestehen die Implementierungen eine Reihe von Tests, die Technology Compatibility Kit (TCK) genannt wird, dürfen sie sich »Java SE compatible« nennen.

 

Zum Seitenanfang

1.6.1    OpenJDK Zur vorigen ÜberschriftZur nächsten Überschrift

Das freie und unter der GPL stehende OpenJDK (https://openjdk.java.net) bildet die Referenzimplementierung für Java SE. Alle Entwicklungen finden dort statt. Der Fortschritt ist live zu beobachten, regelmäßig fixen und erweitern Hunderte von Entwicklern die Codebasis. Die Quellen für das OpenJDK lassen sich im GitHub-Repository unter https://github.com/openjdk/jdk einsehen. Viele Technologien, die Oracle vorher nur im Oracle JDK hatte, wurden in das OpenJDK übertragen, etwa Java Flight Recorder, Java Mission Control, Application Class-Data Sharing und ZGC (Zero-Garbage-Collector).

Binary Referenzimplementierung

Ausführbare Dateien der Java SE-Referenzimplementierungen sind unter https://jdk.java.net/ verlinkt. https://jdk.java.net/17/ listet Java 17-Implementierungen für die Systeme Linux/AArch64, Linux/x64, macOS/AArch64, macOS/x64und Windows/x64 auf. Die Produkte stehen unter der GNU General Public License v2 mit der Classpath Exception[ 42 ](https://openjdk.java.net/legal/gplv2+ce.html). Ein alternativer Name für die Referenzimplementierungen ist Oracle OpenJDK. Oracle selbst hat angekündigt, bei neuen Java-Versionen keine Updates mehr für die alten Versionen zu veröffentlichen.

OpenJDK-Builds von Eclipse

Eclipse Adoptium (ehemals AdoptOpenJDK) (https://adoptium.net/) veröffentlicht regelmäßig Builds vom OpenJDK, integriert weitere Pakete wie die JavaFX-Implementierung OpenJFX und bindet alternative Laufzeitumgebungen wie Eclipse OpenJ9 ein. Es ist angekündigt, dass auch ältere Versionen mit Bugfixes versorgt werden. Zu den Unterstützern zählen Amazon, IBM/Red Hat, Microsoft, Pivotal und viele weitere. Für Java 8 und Java 11 ist Adoptium eine sehr gute Wahl.

Von der Website lässt sich für unterschiedliche Betriebssysteme eine Version herunterladen. Adoptium zählt aktuell zu den populärsten OpenJDK-Distributionen.

Weitere OpenJDK-Builds

Das Unternehmen Azul bietet Builds unter dem Namen Zulu an, auch lässt sich ein Support-Vertrag abschließen: https://www.azul.com/downloads/?package=jdk. Neben den Plattformen Windows, Linux und macOS gibt es von Azul ebenfalls Docker-Images.

Die Red Hat build of OpenJDK bieten neben Linux auch eine Windows-Version des OpenJDK an: https://developers.redhat.com/products/openjdk/overview. Die Integration in Linux ist sehr gut, und Red Hat pflegt auch noch Sicherheitsupdates für ältere Java-Versionen ein.

SAP bietet mit der SapMachine (https://sap.github.io/SapMachine) Builds für diverse Betriebssysteme und auch ein Docker-Image.

Amazon Corretto (https://aws.amazon.com/de/corretto) wird intern von Amazon in der Cloud eingesetzt und ist kostenlos.

Alibaba Dragonwell (http://github.com/alibaba/dragonwell8 und https://github.com/alibaba/dragonwell11) sind vom OpenJDK abgeleitete Implementierungen von Alibaba. Zur Zeit wird nur Linux unterstützt.

Von BellSoft gibt es das Liberica JDK (https://bell-sw.com) für eine große Anzahl verschiedener Plattformen. Es gibt mit VMware eine Kooperation für Spring Native Applications.

Apple pflegte lange Zeit eine komplett eigene JVM, bis Apple den Code an Oracle für das OpenJDK übergab. Auch Google setzt bei Android neuerdings auf das OpenJDK.

 

Zum Seitenanfang

1.6.2    Oracle JDK Zur vorigen ÜberschriftZur nächsten Überschrift

Es ist ein bisschen verwirrend, dass Oracle auf der einen Seite die Referenzimplementierung anbietet und auf der anderen Seite noch eine andere Distribution, das Oracle JDK. Das Oracle JDK ist die »offizielle« Version, die die Java-Download-Seite von Oracle anbietet. Wenige kleine Unterschiede sind die Paketierung (das Oracle JDK hat einen Installer, das Oracle OpenJDK ist nur ein ZIP), die Versionskennung und ein paar weitere Module.[ 43 ](https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later) Das Oracle JDK steht unter der Oracle No-Fee Lizenz und kann privat wie auch kommerziell eingesetzt werden. Oracle verspricht Updates der Version bis mindestens September 2024.

Long-Term Support (LTS)

Die halbjährlichen Java-Releases haben zur Folge, dass Versionen immer dann veraltet sind, wenn eine neue Version erscheint. Für Unternehmen ist das ein Problem, denn es erzeugt Stress, mit den Änderungen mitziehen zu müssen. Aus diesem Grund bietet Oracle eine Java-Version mit Long Term Support (LTS) und versorgt sie mit Updates und Sicherheitspatches. Die LTS-Versionen nach Java 8 waren Java 11 (September 2018) und aktuell Java 17 (September 2021). Das ist für weniger agile Unternehmen gut. Oracle will seine Java SE 8-Implementierung noch viele Jahre pflegen. Es ist geplant, den LTS-Zyklus von drei Jahren auf zwei Jahre zu verkürzen.

Oracle Java SE Subscription

Unternehmen möchten sich oft absichern, und daher bietet Oracle eine Java SE Subscription an. Damit bietet Oracle kommerzielle Unterstützung, falls es Probleme oder Fehler im Produktivbetrieb gibt. Die Kosten können sich schnell summieren, doch bekommen Unternehmen damit Support und insbesondere für die ältere Version Java 8 noch für einige Jahre Unterstützung. Der Nachteil ist, dass es das Subscription-Modell nur für die LTS-Versionen gibt, Unternehmen also gezwungen werden, größere Versionssprünge zu machen, wenn sie den Support wünschen. Andere Unternehmen wie Azul sind günstiger und bieten auch Support für Nicht-LTS-Versionen.

Oracle Certified System Configurations

Eine ideale, perfekt getestete und unterstützte Umgebung gilt als Oracle Certified System Configuration. Das ist eine Kombination aus Betriebssystem mit installierten Service-Packs; die Details beschreibt das Unternehmen auf seiner Webseite, auch für alle vorherigen Versionen.[ 44 ](https://www.oracle.com/java/technologies/javase/products-doc-jdk17certconfig.html) Unterstützt werden nur noch 64-Bit-Betriebssysteme; 32-Bit-Systeme sind raus.

Wenn man Bugs auf nicht zertifizierten Plattformen meldet, kann schnell ein »Sorry, das ist eine nicht unterstützte Plattform, das schauen wir uns nicht weiter an« folgen. Bei Linux ist zum Beispiel die Gentoo-Distribution nicht in der Liste, sie wäre also »Not certified on Oracle VM«. Das heißt nicht, dass Java dort nicht zu 100 % läuft, sondern nur, dass es im Fehlerfall eben keinen Fix geben muss. Auch Solaris SPARC gehört nicht mehr zu den zertifizierten Plattformen.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java ist auch eine Insel Java ist auch eine Insel

Jetzt Buch bestellen


 Buchempfehlungen
Zum Rheinwerk-Shop: Captain CiaoCiao erobert Java

Captain CiaoCiao erobert Java




Zum Rheinwerk-Shop: Algorithmen in Java

Algorithmen in Java




Zum Rheinwerk-Shop: Spring Boot 3 und Spring Framework 6

Spring Boot 3 und Spring Framework 6




Zum Rheinwerk-Shop: Java SE 9 Standard-Bibliothek

Java SE 9 Standard-Bibliothek




 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2024

Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.

Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 

[Rheinwerk Computing]



Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de



Cookie-Einstellungen ändern