Typeninferenz, weniger APIs, Long Term Support Java 10 – die Neuerungen für Entwickler

Autor / Redakteur: Thomas Joos / Stephan Augsten |

Java 10 bietet mehrere neue Features, außerdem entfernt Oracle nicht mehr benötigte und veraltete APIs. Auch die Release-Zyklen will der Hersteller deutlich verkürzen, ein Umstieg kann sich also auszahlen.

Anbieter zum Thema

Java 10 ist im März angekommen und bietet interessante neue Funktionen.
Java 10 ist im März angekommen und bietet interessante neue Funktionen.
(Bild: Oracle.com)

Mit Java 10 will Oracle zunächst veraltete APIs entfernen. Dabei handelt es sich um APIs, die ohnehin kaum genutzt wurden. Generell sollten sich Entwickler aber diese APIs genau ansehen, um sicherzugehen, dass diese in eigenen Apps tatsächlich nicht eingesetzt werden. Eine Liste ist auf der Seite „Proposed Final Draft Specification“ zu lesen.

Oracle will in Zukunft neue Versionen von Java alle 6 Monate vorstellen. Dadurch sollen Entwickler mehr Zuverlässigkeit erhalten und ihren Code besser planen können. Als Versionsnummer soll nicht die Jahreszahl verwendet werden, sondern weiterhin Nummern in der Art Java 10. Der Nachfolger von Java 10 wird also Java 11 sein und im September 2018 erscheinen. Oracle will es aber Microsoft gleichtun und im Frühling (März) sowie im Herbst (September) die neuen Versionen veröffentlichen.

Zwischenversionen werden weiterhin Nummern nach der Syntax 10.x.x erhalten. Diese verfügen über keine neuen Features, sondern bieten vor allem Security- und Bug-Fixes. Es soll auch eine Long-Term-Support-Version geben, die Oracle längere Zeit unterstützen will und die über den kompletten Lebenszyklus Updates erhalten soll.

Ein Dutzend neuer Funktionen

In Java 10 integriert Oracle zwölf neue Funktionen. Hier ein paar Details zu den Features.

  • JEP 286: Local-Variable Type Inference hilft dabei, den Code effektiver und kompakter bereitzustellen. Hier lassen sich zum Beispiel auch die Deklaration von Manifesten umgehen. Allerdings ist die neue Funktion nicht für alle Bereiche in Java nutzbar, zum Beispiel für Method Formals, Constructor Formals oder die Deklaration von Variablen.
  • JEP 296: Consolidate the JDK Forest into a Single Repository soll dabei helfen, dass es in Zukunft nur noch einzelne Repositories. Es sind nicht mehr verschiedene Repositories notwendig.
  • JEP 304: Garbage-Collector Interface verbessert den Umgang mit Garbage Collectors (GC) durch ein verbessertes Interface. Davon profitieren verschiedene Funktionen in Java 10, bei denen GCs verwendet werden.
  • JEP 307: Parallel Full GC for G1 verbessert die Latenz des Garbage Collectors G1.
  • JEP 310: Application Class-Data Sharing erweitert das Class-Data-Sharing- bzw. CDS-Feature. Damit lassen sich Applikations-Klassen in geteilten Archiven einsetzen.
  • JEP 312: Thread-Local Handshakes ermöglicht das Stoppen einzelner Threads. Die anderen Threads können dabei weiterlaufen.
  • Durch JEP 313: Remove the Native-Header Generation Tool (javah) wird „javah“ aus dem JDK gestrichen. Als Alternative können Entwickler auf „javac“ setzen.
  • JEP 314: Additional Unicode Language-Tag Extensions ermöglichen zusätzliche Unicode Extensions
  • JEP 316: Heap Allocation on Alternative Memory Devices erlaubt das bessere Steuern der Arbeitsspeicherverwendung. Im Code lassen sich verschiedene Speicherarten parallel nutzen und Prozesse aufteilen.
  • JEP 317: Experimental Java-Based JIT Compiler ermöglicht den Einsatz von JIT – auch in Linux.
  • JEP 319: Root Certificates integriert Zertifikate von Oracles Root-Certification-Authority für Java SE.
  • JEP 322: Time-Based Release Versioning ist ein neues Versionierungsschema für Releases von Java 10.

Java 10 und Windows 10

Viele Entwickler werden Java 10 auch für Apps auf Windows-Basis nutzen. Wenn in Windows 10 Java installiert ist, sollte natürlich auch bei Version 10 darauf geachtet werden, dass die Anwendungen über ein gültiges Zertifikat verfügen. Ansonsten blockiert Windows 10 die Ausführung. Da vor allem in Unternehmen nicht alle Java-Apps über ein Zertifikat verfügen, besteht in der Systemsteuerung von Windows 10 die Möglichkeit, Sicherheitseinstellungen für Java anzupassen.

Hier lassen sich zum Beispiel Ausnahmelisten pflegen. Entwickler sollten sich auch in der Version 10 von Java diese Funktionen ansehen und entsprechend pflegen. Über die „Ausnahmeliste“ im Java-Applet der Systemsteuerung können solche Apps in Windows 10 über die Registerkarte „Sicherheit“ freigeschaltet werden. Sauberer ist es aber auf jeden Fall, die App mit einem entsprechenden Zertifikat auszustatten.

Anstatt über da Java-Applet in der Systemsteuerung zu gehen ist es aber auch sinnvoll, direkt die Systemdatei „exception.sites“ zu bearbeiten. Diese lässt sich auch auf mehrere Rechner verteilen, sodass die Ausnahmeliste für mehrere Rechner gleichzeitig optimiert werden kann. Die Datei kann als einfache Textdatei erstellt werden. Jede URL kommt in eine eigene Zeile. Das Kopieren kann in Active Directory-Umgebungen auch über Gruppenrichtlinien erfolgen.

Fazit

Java wird in Zukunft zuverlässigere Release-Zyklen erhalten, die für Entwickler besser planbar sind. Wer nicht immer die aktuellste Version nutzen will, kann mit der LTS-Version arbeiten. Ob sich die neuen Funktionen lohnen, muss jeder Entwickler selbst entscheiden. Beachtet werden müssen die abgekündigten APIs, da hier sichergestellt werden muss, dass diese nicht noch in eigenen Apps eingesetzt werden.

(ID:45245665)