Java8 vs Java9

Java8 vs Java9

Java 8 vs Java 9: ​​Ulepszenia w Javie 9, które musisz wiedzieć

Wielu programistów zwróci się do Java, aby tworzyć aplikacje. Jak wszyscy wiemy, Java jest niezwykle wszechstronna, łatwa w użyciu, bezpieczna, niezawodna, a przede wszystkim jest niezależna. Java ma następujące ponad 6.5 milionów programistów na całym świecie. Jako taki, jest to idealny język do użycia, ponieważ materiał referencyjny jest również obfity.

Niemniej jednak Java nadal rośnie i ewoluuje. Utworzona przez Sun Microsystems w 1995 r., Java nadal udowadnia swoją niezawodność. Poprzednia wersja Java, która była używana od 18 marca 2014 r., Była Java SE 8. Kiedy został odsłonięty, krytycy stwierdzili, że to dzieło sztuki, wydanie strumieni zmian w API. Teraz na bloku jest nowe dziecko. Wreszcie jest świeżo wybita Java 9. Oczekuje się, że 21 września 2017 r. Oczekuje się, że Java SE 9 wstrząsnę.

Ze względu na niesamowitą zwinność i wszechstronność Java 8 firmy stworzyły niesamowite rozwiązania dla branż takich jak opieka zdrowotna, fintech i inne główne sektory. Java 9, z drugiej strony, obiecuje budować na tym i dostarczyć deweloperom zupełnie nowe funkcje.

Rzućmy więc okiem na to, co nowego w Javie 9.

Project Jigsaw

To jedna z najważniejszych atrakcji Java 9. Zasadniczo Project Jigsaw to nazwa nadana modularyzacji Java. Gdy kawałki Jigsaw łączą się po kawałku, aby stworzyć jeden większy obraz, podobnie jak modułowość Java 9. Oznacza to, że kod jest podzielony na części (moduły) z powodu zadań lub funkcji, które należy wykonać. Jest to ogromny krok naprzód, ponieważ modulalizacja nie tylko sprawia, że ​​możliwość ponownego użycia kodu jest znacznie wygodniejsza, ale także zarządzanie i debugowanie jest proste. Z tego powodu stwierdzamy, że programiści będą mieli łatwiejszy czas na tworzenie aplikacji z Java 9 niż w przypadku innych poprzednich kompilacji.

Kolejną zaletą modularyzacji jest to, że programiści mogą teraz tworzyć lekkie, skalowalne aplikacje. Zwłaszcza w przypadku dalszego rozwoju Internetu rzeczy, znajdziemy więcej takich aplikacji napisanych w Javie.

JEP 222: Jshell: Skorupa Java

Java 9 zawiera nowe narzędzie do odczytu-oceny (reportaż). Po znaczeniu fazy rozwojowej w ramach projektu Kulia ta funkcja została ostatecznie wydana publicznie. Ta nowa funkcja to interaktywne narzędzie używane do testowania wyrażeń, stwierdzeń i deklaracji napisanych w Javie. Głównym celem JSHell API i narzędzia jest zapewnienie programistowi możliwości przetestowania funkcji wymienionych powyżej w stanie powłoki. Jest to przede wszystkim szybkie kodowanie i badanie, w których wyrażenia i stwierdzenia nie muszą być z kolei w metodzie i metod, nie muszą być w klasie. W ten sposób programista może szybko przeanalizować fragmenty kodu i sprawdzić, czy przyniosą pożądany efekt.

Narzędzie JSHell będzie miało interfejs wiersza poleceń z następującymi funkcjami:

  • Konfigurowalna predefiniowana definicja i import.
  • Historia z możliwościami edytowania
  • Automatyczne dodanie niezbędnych półkolisów końcowych

Ulepszenia kompilatora

Aby zapewnić, że aplikacje działają szybciej, Java 9 zaciągnęła nową technologię o nazwie kompilacja z wyprzedzeniem (AOT). Ta technologia, choć w fazach eksperymentalnych, umożliwia skompilowanie klas Java do kodu natywnego, nawet przed uruchomieniem w maszynach wirtualnych. Możliwości tego są nieograniczone. Jednak bardziej natychmiastowe wykorzystanie tej technologii poprawia czas uruchamiania dla dużych i małych aplikacji bez odstraszania wydajności szczytowej.

Z perspektywy czasu Java 8 używa kompilatorów Just-In-Time (JIT). Te kompilatory są szybkie, ale poświęć trochę więcej czasu, zanim się rozgrzewają. To może być nieistotne dla mniejszych programów lub aplikacji, ponieważ nie ma dużo kodu do skompilowania. Jednak w przypadku większych aplikacji narracja jest zupełnie inna. Rozgrzewka, jaką potrzebuje kompilator Just-in-Time, oznacza, że ​​niektóre metody nie są kompilowane w ten sposób, osłabiając wydajność aplikacji.

Drugą fazą w wdrażaniu Smart Compilacja jest ulepszeniem przenośności i stabilności Javac Tool. Ulepszenie tego narzędzia umożliwia jego użycie bezpośrednio w JVM (maszyna wirtualna Java) jako ustawienie domyślne. Poza tym narzędzie zostało uogólnione w taki sposób, który pozwala programistom korzystać z niego nawet poza środowiskiem JDK. Dla programistów jest to wielka sprawa, ponieważ Java może być używana w większych projektach, które można łatwo zakwaterować, nie martwiąc się o kompatybilność. Kolejną kluczową aktualizacją jest zacofana kompatybilność kompilatora Javac, którego jedynym funkcją jest kompilacja aplikacji i programów utworzonych za pomocą Java 9, aby działać również w starszych wersjach Java.

Lepsze wsparcie JavaScript

Ponieważ JavaScript nadal nabiera pędu i staje się ulubieńcem dla wielu, JDK 9 umożliwił osadzenie JavaScript w aplikacjach Java. Wszystko to odbywa się przy pomocy projektu Nashorn, którego głównym celem było stworzenie wysokiej wydajności, ale lekkiego środowiska wykonawczego JavaScript w Javie. To oczywiście zostało dostarczone, gdy dostarczyli silnik JavaScript w JDK w wersji 8. Teraz w wersji 9 istnieje interfejs API parsera, którego celem jest zamówienie składniowe Nashorn ECMAScript. To, co robi API, to włączenie analizy kodu ECMAScript według frameworków i IDE serwera bez konieczności polegania na wewnętrznych klasach implementacji projektu Nashorn.

G1 jako śmieciowy

Wbrew powszechnemu przekonaniu, Java nie ma ani jednego, ale czterech kolekcjonerów śmieci. Te śmieci nie są stworzone równe i jako takie, wybór niewłaściwego oznaczał problemy z wydajnością w aplikacji. W Java 8 domyślnym kolektorem śmieci był kolekcjoner. Ten kolekcjoner śmieci został zastąpiony przez swojego poprzednika, zbierającym śmieci (G1). Ponieważ kolekcjoner G1 został zaprojektowany do skutecznego obsługi sterty większej niż 4 GB, jest to idealny pobór śmieci zarówno dla małych, jak i dużych aplikacji.

Aktualizacje API

W tej nowej wersji Java Development Kit wprowadzono kilka aktualizacji API i omówimy najbardziej znaczące.

Pierwszy to aktualizacje współbieżności Java 9, które mają Java.Util.równoległy.Flow and CompletableFuture. Mające na celu rozwiązanie problemu, który jest ciśnieniem wstecznym. Flow jest implementacją interfejsu API strumieni reaktywnych, które zasadniczo ma na celu rozwiązanie problemu ciśnienia wstecznego. Ciśnienie wsteczne to gromadzenie danych, które występują, gdy szybkość żądań przychodzących jest większa niż możliwości przetwarzania aplikacji. Na dłuższą metę jest to problem, ponieważ aplikacja kończy się buforem nieprzetworzonych danych. Ta aktualizacja będzie oznaczać lepsze obsługę limitu czasu, opóźnień i podklasy.

Bezpieczeństwo jest częścią podstawowej tożsamości Java. Jako takie, wsparcie dla nowo zatwierdzonego HTTP 2.0 RFC to ogromny plus. HTTP 2.0 RFC został zbudowany na algorytmie SPDY Google, który już zaczął przynieść owoce z ulepszeniami prędkości od 11.81% do 47.7% z poprzedniego HTTP 1.1. Ten interfejs API klienta jest aktualizacją do podstawowych protokołów HTTP i interfejsu API HTTPURLCONNECTION, co jest co najmniej, ponieważ zostało wykonane jeszcze przed HTTP 1.

Buforowanie kodu zawsze było strategią stosowaną do szybszego i płynnego aplikacji przez lata. Jednak nie jest to pozbawione ograniczeń, a to nie pozostało niezauważone. Aktualizacja Java 9 wyraźnie pokazuje JDK 9 podzielone kody buforowane na mniejsze części, poprawiając ogólną wydajność. JDK 9 używa specjalnych iteratorów do pomijania kodu niemetodowego; w celu oddzielenia profilowego, non-profiled i niezachwianego kodu; i poprawa niektórych punktów odniesienia na czas wykonania.

Korzyści z Java 9

Dla wielu właścicieli firm nie ma różnicy między Java 8 i 9. Jednak dla programisty istnieje świat różnicy. Są to korzyści, jakie Java SE 9 ma nad swoimi poprzednikami.

  • Szybkość rozwoju zostanie znacznie zwiększona dzięki systemowi modułów, które są nie tylko łatwiejsze do zarządzania i debugowania, ale także wielokrotnego użytku, co oznacza, że ​​nie musisz pisać całego kodu od zera.
  • Zwiększenie efektywności zasobów dla aplikacji z modularyzacji, a także uczynienie zasobów na prostsze, ponieważ programiści przyjmują tylko potrzebne moduły zamiast całego JRE.
  • Analiza fragmentów kodu, takich jak mikro-testy, używane do sprawowania wydajności małych kawałków kodu.

Źródła

http: // openjdk.Jawa.net/jeps/251
https: // www.Romexsoft.com/blog/java-8-vs-java-9/
https: // blogi.wyrocznia.com/java/funkcje w Java-8 i 9
https: // dzone.com/artykuły/5-featire-in-java-9-to-will-change-how-you-deve

https: // linuxhint.com/eclipse-java-inorial/