Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Verbesserungen in Java 9, die Sie kennen müssen

Viele Entwickler verwenden Java, um Anwendungen zu erstellen. Wie wir alle wissen, ist Java unglaublich vielseitig, einfach zu bedienen, sicher, zuverlässig und vor allem plattformunabhängig. Java hat eine Anhängerschaft von mehr als 6,5 Millionen Entwicklern weltweit. Als solche ist es die perfekte Sprache, da auch Referenzmaterial reichlich vorhanden ist.

Trotzdem ist Java im Laufe der Jahre weiter gewachsen und hat sich weiterentwickelt. Erstellt von Sun Microsystems im Jahr 1995 , Java hat seine Zuverlässigkeit weiterhin unter Beweis gestellt. Der vorherige Build von Java, der seit dem 18. März 2014 verwendet wird, war Java SE 8. Als es vorgestellt wurde, sagten Kritiker, es sei ein Kunstwerk, eine Veröffentlichung von Streams von Änderungen in APIs. Jetzt gibt es ein neues Kind im Block. Frisch geprägtes Java 9 ist endlich da. Enthüllt am 21. September 2017 , Java SE 9 soll die Art und Weise verändern, wie wir Dinge tun und wie Entwickler Anwendungen erstellen.







Aufgrund der unglaublichen Agilität und Vielseitigkeit von Java 8 haben Unternehmen unglaubliche Lösungen für Branchen wie Gesundheitswesen, Fintech und andere wichtige Sektoren geschaffen. Java 9 verspricht dagegen, darauf aufzubauen und den Entwicklern ganz neue Funktionalitäten zu liefern.



Werfen wir also einen Blick auf die Neuerungen in Java 9.



Projekt Puzzle

Dies ist eines der Highlights von Java 9. Im Grunde ist Project Jigsaw der Name für Modularisierung von Java. So wie sich Puzzleteile Stück für Stück zu einem größeren Bild zusammenfügen, so auch die Modularität von Java 9. Das bedeutet, dass der Code aufgrund der auszuführenden Aufgaben oder Funktionalitäten in Teile (Module) zerlegt wird. Dies ist ein großer Fortschritt, da die Modularisierung nicht nur die Wiederverwendbarkeit von Code wesentlich komfortabler macht, sondern auch die Verwaltung und das Debugging unkompliziert sind. Aus diesem Grund stellen wir fest, dass Entwickler es mit Java 9 leichter haben werden, Anwendungen zu erstellen als mit allen anderen früheren Builds.





Ein weiterer Vorteil der Modularisierung besteht darin, dass Entwickler jetzt leichtgewichtige, skalierbare Anwendungen erstellen können. Vor allem mit dem weiter wachsenden Internet der Dinge werden wir immer mehr solcher Apps finden, die in Java geschrieben sind.

JEP 222: jshell : Die Java-Shell

Java 9 enthält das neue Tool Read-Eval-Print-Loop (REPL). Nachdem er sich in seiner Entwicklungsphase unter Projektrecht diese Funktion wurde endlich für die Öffentlichkeit freigegeben. Diese neue Funktion ist ein interaktives Tool zum Testen von in Java geschriebenen Ausdrücken, Anweisungen und Deklarationen. Das Hauptziel der JShell-API und des Tools besteht darin, dem Entwickler die Möglichkeit zu geben, die oben genannten Funktionen im Shell-Zustand zu testen. Dies ist in erster Linie schnelles Codieren und Untersuchen, wobei die Ausdrücke und Anweisungen nicht innerhalb einer Methode und Methoden wiederum nicht innerhalb einer Klasse sein müssen. Auf diese Weise kann ein Entwickler Code-Teile schnell analysieren und sehen, ob sie den gewünschten Effekt bringen.



Das jshell-Tool verfügt über eine Befehlszeilenschnittstelle mit den folgenden Funktionen:

  • Konfigurierbare vordefinierte Definition und Importe.
  • Eine Geschichte mit Bearbeitungsfunktionen
  • Automatisches Hinzufügen notwendiger Terminal-Semikolons

Compiler-Verbesserungen

Um sicherzustellen, dass Anwendungen schneller laufen, hat Java 9 eine neue Technologie namens AoT-Kompilierung eingeführt. Diese Technologie, auch wenn sie sich noch in der experimentellen Phase befindet, ermöglicht es, Java-Klassen in nativen Code zu kompilieren, noch bevor dieser in den virtuellen Maschinen gestartet wird. Die Möglichkeiten hierfür sind endlos. Der unmittelbarere Einsatz dieser Technologie verbessert jedoch die Startzeit für große und kleine Apps, ohne dass die Spitzenleistung beeinträchtigt wird.

Rückblickend verwendet Java 8 Just-in-Time-Compiler (JIT). Diese Compiler sind schnell, brauchen aber etwas mehr Zeit, bevor sie sich aufwärmen. Für kleinere Programme oder Apps kann das belanglos sein, da nicht viel Code zu kompilieren ist. Bei den größeren Apps ist die Erzählung jedoch ganz anders. Das Aufwärmen, das ein Just-in-Time-Compiler benötigt, bedeutet, dass einige Methoden nicht kompiliert werden, was die Leistung der App schwächt.

Die zweite Phase der Bereitstellung der intelligenten Kompilierung ist die Verbesserung der Portabilität und Stabilität des Javac-Tools. Durch die Erweiterung dieses Tools kann es als Standardeinstellung direkt in der JVM (Java Virtual Machine) verwendet werden. Abgesehen davon wurde das Tool so verallgemeinert, dass Entwickler es auch außerhalb der JDK-Umgebung verwenden können. Für Entwickler ist dies eine große Sache, da Java in größeren Projekten verwendet werden kann, die problemlos untergebracht werden können, ohne sich um die Kompatibilität kümmern zu müssen. Ein weiteres entscheidendes Update ist die Abwärtskompatibilität des Javac-Compilers, dessen einzige Funktion darin besteht, mit Java 9 erstellte Apps und Programme so zu kompilieren, dass sie auch auf älteren Java-Versionen laufen.

Bessere JavaScript-Unterstützung

Da JavaScript immer mehr an Bedeutung gewinnt und für viele zu einem Favoriten wird, hat JDK 9 die Einbettung von JavaScript in Java-Apps ermöglicht. All dies geschieht mit Hilfe von Project Nashorn deren Hauptziel es war, eine leistungsstarke und dennoch leichtgewichtige JavaScript-Laufzeit in Java zu erstellen. Dies wurde natürlich geliefert, als sie eine JavaScript-Engine in JDK Version 8 bereitgestellt haben. Jetzt gibt es in Version 9 eine Parser-API, deren Ziel die ECMAScript-Syntaxreihenfolge von Nashorn ist. Diese API ermöglicht die Analyse von ECMAScript-Code durch serverseitige Frameworks und IDEs, ohne sich auf die internen Implementierungsklassen von Project Nashorn verlassen zu müssen.

G1 als Garbage Collector

Entgegen der landläufigen Meinung hat Java nicht einen, sondern vier Garbage Collectors. Diese Garbage Collectors sind nicht gleichwertig und die Auswahl des falschen bedeutete daher Leistungsprobleme in der Anwendung. In Java 8 war der Standard-Garbage Collector der Parallel / Throughput Collector. Dieser Garbage Collector wurde durch seinen Vorgänger, den Garbage-First Collector (G1) ersetzt. Da der G1-Kollektor so konzipiert wurde, dass er Heaps mit mehr als 4 GB effizient unterstützt, ist er der perfekte Garbage Collector für kleine und große Anwendungen.

API-Updates

In dieser neuen Version des Java-Entwicklungskits wurden mehrere Aktualisierungen an den APIs vorgenommen, und wir werden die bemerkenswertesten besprechen.

Das allererste sind die Java-9-Parallelitätsupdates mit Java.util.concurrent.Flow und CompletableFuture. Zielt darauf ab, das Problem des Gegendrucks zu lösen. Flow ist die Java-Implementierung des Reaktive Streams-API die im Wesentlichen darauf abzielt, das Gegendruckproblem zu lösen. Staudruck ist die Ansammlung von Daten, die auftritt, wenn die Rate eingehender Anfragen größer ist als die Verarbeitungskapazität der Anwendung. Auf lange Sicht ist dies ein Problem, da die Anwendung am Ende einen Puffer mit unverarbeiteten Daten hat. Dieses Update bedeutet eine bessere Handhabung von Zeitüberschreitungen, Verzögerungen und Unterklassen.

Sicherheit ist Teil der Kernidentität von Java. Als solche Unterstützung für die neu genehmigten HTTP 2.0 RFC ist ein großes Plus. HTTP 2.0 RFC wurde darauf aufgebaut Googles SPDY-Algorithmus die bereits erste Früchte trägt mit Geschwindigkeitsverbesserungen von 11,81 % auf 47,7 % gegenüber dem vorherigen HTTP 1.1. Diese Client-API ist ein Upgrade der HTTP-Kernprotokolle und der HttpURLConnection-API, die problematisch ist, gelinde gesagt, da sie noch vor HTTP 1 erstellt wurde.

Code-Caching war im Laufe der Jahre immer eine Strategie, um Anwendungen schneller und reibungsloser zu machen. Es ist jedoch nicht ohne Einschränkungen, und dies ist nicht unbemerkt geblieben. Ein Update in Java 9 zeigt deutlich, dass JDK 9 zwischengespeicherte Codes in kleinere Teile aufteilt und so die Gesamtleistung verbessert. JDK 9 verwendet spezielle Iteratoren, um Nicht-Methodencode zu überspringen; um profilierten, nicht profilierten und nicht methodischen Code zu trennen; und Verbesserung einiger Benchmarks für die Ausführungszeit.

Vorteile von Java 9

Für viele Geschäftsinhaber gibt es keinen Unterschied zwischen Java 8 und 9. Für den Entwickler gibt es jedoch einen himmelweiten Unterschied. Dies sind die Vorteile, die Java SE 9 gegenüber seinen Vorgängern bietet.

  • Die Entwicklungsgeschwindigkeit wird dank des Modulsystems deutlich erhöht, das nicht nur einfacher zu verwalten und zu debuggen ist, sondern auch wiederverwendbar ist, sodass Sie nicht den gesamten Code von Grund auf neu schreiben müssen.
  • Verbesserung der Ressourceneffektivität für Anwendungen durch Modularisierung und Vereinfachung des Ressourcenziehens, da Entwickler nur die benötigten Module anstelle der gesamten JRE verwenden.
  • Echtzeitanalyse von Codeschnipseln wie z Mikrobenchmarks verwendet, um die Leistung von kleinen Codestücken zu untersuchen.

Quellen

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/features-in-java-8-and-9
https://dzone.com/articles/5-features-in-java-9-that-will-change-how-you-deve

Eclipse Java-Tutorial