Java8 срещу Java9

Java8 Vs Java9



Java 8 срещу Java 9: ​​Подобрения в Java 9, които трябва да знаете

Много разработчици ще се обърнат към Java за създаване на приложения. Както всички знаем, Java е невероятно гъвкав, лесен за използване, сигурен, надежден и най -вече е независим от платформата. Java има повече от 6,5 милиона разработчици в световен мащаб. Като такъв, той е идеалният език за използване, тъй като референтният материал също е в изобилие.

Въпреки това Java продължава да расте и да се развива през годините. Създаден от Sun Microsystems през 1995 г. , Java продължава да доказва своята надеждност. Предишната версия на Java, която се използва от 18 март 2014 г., беше Java SE 8. Когато беше представена, критиците казаха, че това е произведение на изкуството, освобождаване на потоци от промени в API. Сега в блока има ново дете. Прясно сечената Java 9 най -накрая е тук. Открит на 21 септември 2017 г. , Java SE 9 се очаква да разклати начина, по който правим нещата и начина, по който разработчиците създават приложения.







Благодарение на невероятната гъвкавост и гъвкавост на Java 8, бизнесът създаде невероятни решения за индустрии като здравеопазване, финтех и други големи сектори. Java 9, от друга страна, обещава да надгражда върху това и да доставя изцяло нови функционалности на разработчиците.



Така че, нека да разгледаме новостите в Java 9.



Проект Мозайката

Това е един от акцентите на Java 9. По принцип проектният мозайката е името, дадено на модулация на Java. Тъй като парчетата от мозайката се събират парче по парче, за да създадат една по -голяма картина, така се прави и модулността на Java 9. Това означава, че кодът е разбит на части (модули) поради задачите или функционалностите, които трябва да бъдат изпълнени. Това е огромна крачка напред, тъй като модуларизацията не само прави повторното използване на кода много по-удобно, но също така управлението и отстраняването на грешки е лесно. Поради това откриваме, че разработчиците ще имат по -лесно време да създават приложения с Java 9, отколкото с всяка друга предишна версия.





Друго предимство на модуларизацията е, че разработчиците вече могат да създават леки, мащабируеми приложения. Особено с продължаващия растеж на Интернет на нещата, ще открием още такива приложения, написани на Java.

JEP 222: jshell : Java Shell

Java 9 разполага с новия инструмент за четене-евал-печат (REPL). След като е в своята фаза на развитие под Проект вдясно тази функция най -накрая беше пусната за обществеността. Тази нова функция е интерактивен инструмент, който се използва за тестване на изрази, изявления и декларации, написани на Java. Основната цел на JShell API и инструмента е да даде възможност на разработчика да тества функциите, споменати по -горе, в състоянието на обвивката. Това е предимно бързо кодиране и изследване, при което изразите и изявленията не трябва да са вътре в метод и методи от своя страна, не е задължително да са вътре в клас. По този начин разработчикът може бързо да анализира парчета код и да види дали те ще донесат желания ефект.



Инструментът jshell ще има интерфейс на командния ред със следните функции:

  • Конфигурируемо предварително дефиниране и импортиране.
  • История с възможности за редактиране
  • Автоматично добавяне на необходимите крайни точки и запетаи

Подобрения на компилатора

За да се гарантира, че приложенията работят по-бързо, Java 9 включи нова технология, наречена изпреварващо (AoT) компилиране. Тази технология, макар и в експерименталните си фази, дава възможност Java класовете да бъдат компилирани в собствен код още преди да бъдат пуснати във виртуалните машини. Възможностите за това са безкрайни. Въпреки това, по -непосредственото използване на тази технология подобрява времето за стартиране на големи и малки приложения без никакво възпиране при върхова производителност.

В ретроспекция, Java 8 използва Just-in-time (JIT) компилатори. Тези компилатори са бързи, но отнемат малко повече време, преди да загреят. Това може да е маловажно за по -малки програми или приложения, защото няма много код за компилиране. За по -големите приложения обаче разказът е съвсем различен. Загряването, от което се нуждае точно навреме компилатор, означава, че някои методи не са компилирани, което отслабва производителността на приложението.

Втората фаза при внедряването на интелигентни компилации е подобряването на преносимостта и стабилността на инструмента Javac. Подобряването на този инструмент позволява да се използва директно в JVM (Java Virtual Machine) като настройка по подразбиране. Отделно от това, инструментът е обобщен по такъв начин, че позволява на разработчиците да го използват дори извън средата на JDK. За разработчиците това е голяма работа, тъй като Java може да се използва в по -големи проекти, които лесно могат да бъдат приспособени, без да се притеснявате за съвместимостта. Друга важна актуализация е обратната съвместимост на компилатора Javac, чиято единствена функция е да компилира приложения и програми, създадени с помощта на Java 9, за да работи и на по -стари версии на Java.

По -добра поддръжка на JavaScript

Тъй като JavaScript продължава да набира скорост и да стане любим за мнозина, JDK 9 направи възможно вграждането на JavaScript в Java приложения. Всичко това се прави с помощта на Проект носорог чиято основна цел беше да създаде високопроизводителна, но олекотена среда за изпълнение на JavaScript в Java. Това, разбира се, беше доставено, когато те предоставиха JavaScript двигател във JDK версия 8. Сега във версия 9 има API за парсер, чиято цел е редът на синтаксиса на ECMAScript на Nashorn. Това, което прави този API, е да позволи анализ на ECMAScript кода от сървърни рамки и IDE, без да се налага да разчитате на вътрешните класове за изпълнение на Project Nashorn.

G1 като събирач на боклук

Противно на общоприетото схващане, Java има не един, а четири събирача на боклук. Тези събирачи на боклук не са създадени равни и като такива, изборът на грешен означава да има проблеми с производителността в приложението. В Java 8, събирачът на боклук по подразбиране е Parallel / Throughput Collector. Този събирач на боклук е заменен от своя предшественик Колекторът за първи боклук (G1). Тъй като колекторът G1 е проектиран да поддържа ефективно купчини, по-големи от 4 GB, той е идеалният събирач на боклук както за малки, така и за големи приложения.

Актуализации на API

В тази нова версия на комплекта за разработка на Java бяха направени няколко актуализации на API и ние ще обсъдим най -забележителните.

Първата е актуализацията за паралелност на Java 9, която има Java.util.concurrent.Flow и CompletableFuture. Насочени към решаване на проблема с обратното налягане. Flow е изпълнението на Java от API за реактивни потоци което по същество има за цел да реши проблема с обратното налягане. Обратното налягане е натрупването на данни, което се случва, когато скоростта на входящите заявки е по-голяма от възможностите за обработка на приложението. В дългосрочен план това е проблем, тъй като приложението завършва с буфер от необработени данни. Тази актуализация ще означава по -добро справяне с изчакванията, забавянията и подкласовете.

Сигурността е част от основната идентичност на Java. Като такава, подкрепа за новоодобрените HTTP 2.0 RFC е огромен плюс. HTTP 2.0 RFC е изграден върху SPDY алгоритъм на Google която вече започна да дава плодове с подобрения в скоростта, вариращи от 11.81% до 47.7% от предишната HTTP 1.1. Този клиентски API е надстройка към основните HTTP протоколи и HttpURLConnection API, което е проблематично, най -малкото, тъй като е направено още преди HTTP 1.

Кеширането на кодове винаги е било стратегия, използвана за ускоряване и гладкост на приложенията през годините. Това обаче не е без ограничения и това не остана незабелязано. Актуализация в Java 9 ясно показва JDK 9, разделящ кешираните кодове на по -малки части, като по този начин подобрява цялостната производителност. JDK 9 използва специални итератори, за да пропусне код без метод; да се разделят профилиран, непрофилиран и неметодов код; и подобряване на някои критерии за времето за изпълнение.

Предимства на Java 9

За много собственици на бизнес няма разлика между Java 8 и 9. Въпреки това, за разработчика, има свят на разлика. Това са предимствата, които Java SE 9 има пред своите предшественици.

  • Скоростта на развитие ще бъде значително увеличена благодарение на системата от модули, които са не само по -лесни за управление и отстраняване на грешки, но и за многократна употреба, което означава, че не е нужно да пишете целия код от нулата.
  • Повишаване на ефективността на ресурсите за приложения от модуларизация и също така улесняване на извличането на ресурси, тъй като разработчиците ще вземат само необходимите модули, а не цели JRE.
  • Анализ в реално време на фрагменти от код като микро бенчмарки използвани за разглеждане на работата на малки парчета код.

Източници

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 урок