Јава 9 Карактеристике и побољшања

Модуларни оквир развијен у оквиру Јигсав пројекта и главне функције Јава 9 на овом блогу су ЈСхелл (алат РЕПЛ), важне промене АПИ-ја и промене на нивоу ЈВМ-а.

Издање Јава 9 и Јава 9 карактеристика је прекретница за Јава екосистем.Пратити нова издања важно је да бисте били у току са технологијом и разумели потребу да оно што се уводи приближи вашој .Модуларни оквир развијен у оквиру Пројецт Јигсав биће део овог издања Јава СЕ, а његове главне карактеристике су ЈСхелл (алат РЕПЛ), важне промене АПИ-ја и промене на нивоу ЈВМ ради побољшања перформанси и отклањања грешака ЈВМ-а.

Пре него што детаљно разоткријемо функције Јава 9, завиримо у претходне верзије Јава и увидимо који су недостаци и како је Јава 9 помогла да се превазиђу те аномалије: -





  • Платформа Јава Стандард Едитион и ЈДК нису могли да се користе за мале рачунарске уређаје
  • Није било свеукупне безбедности и одржавања ЈДК
  • Није било укупног побољшања перформанси апликације
  • Јава програмерима је било тешко да направе и подржавају библиотеке кода и веће апликације, како за Јава СЕ, тако и за ЕЕ платформе

У овом посту на блогу ја ћу категоризовати функције Јава 9 на следећи начин:



  1. Обрадите ажурирања АПИ-ја у Јави 9
  2. ХТТП / 2 клијент у Јави 9
  3. Јава Схелл Сцриптинг (Реад-Евал-Принт-Лооп) у Јави 9
  4. ЈАР датотеке са више издања садрже функцију Јава 9
  5. Функција Више ажурирања паралелности у Јави 9
  6. Пројект Јигсав у Јави 9

Шта је ново у Јави 9?

Одабрао сам неколико нових функција Јава 9, за које сматрам да их вреди знати. Да видимо које су ове карактеристике: -

Обрадите ажурирања АПИ-ја у Јави 9

Јава-ов АПИ процеса је прилично примитиван,уз подршку само за покретање нових процеса, преусмеравају излазе процеса и токове грешака. У овом издању, ажурирања АПИ-ја процеса омогућавају следеће:

  • Добијање ПИД-а тренутног ЈВМ процеса и свих осталих процеса које је ЈВМ родио
  • Набројите процесе који се изводе у систему да бисте добили информације попут ПИД-а, имена и употребе ресурса
  • Управљање процесним дрвећем
  • Управљање потпроцесима

Погледајмо пример кода који исписује тренутни ПИД као и тренутне информације о процесу:



јавна класа НевФеатурес {публиц статиц воид маин (Стринг [] аргс) {ПроцессХандле цуррентПроцесс = ПроцессХандле.цуррент () Систем.оут.принтлн ('ПИД:' + цуррентПроцесс.гетПид ()) ПроцессХандле.Инфо цуррентПроцессИнфо = цуррентПроцесс.инфо () Систем.оут.принтлн ('Инфо:' + цуррентПроцессИнфо)}

ХТТП / 2 клијент у Јави 9

Очекује се да ће се ова функција Јава 9 променити у наредним издањима, а можда ће бити и потпуно уклоњена.

Раније Програмери често прибегавају коришћењу библиотека независних произвођача, као што су Апацхе ХТТП, Јерсеи итд. Поред тога, Јава-ов ХТТП АПИ претходи ХТТП / 1.1 спецификацији и синхрон је и тежак за одржавање. Ова ограничења су захтевала потребу за додавањем новог АПИ-ја. Нови АПИ ХТТП клијента пружа следеће:

  • Једноставан и сажет АПИ за решавање већине ХТТП захтева
  • Подршка за ХТТП / 2 спецификацију
  • Боље перформансе
  • Боља сигурност
  • Још неколико побољшања

Погледајмо пример кода за постављање ХТТП ГЕТ захтева помоћу нових АПИ-ја. Испод је дефиниција модула дефинисана у датотеци модуле-инфо.јава:

модул невфеатурес {захтева јдк.инцубатор.хттпцлиент}

Следећи код користи ХТТП клијентски АПИ, који је део модула јдк.инцубатор.хттпцлиент:

импорт јдк.инцубатор.хттп. * импорт јава.нет.УРИ јавна класа Хттп2Феатуре {публиц статиц воид маин (Стринг [] аргс) баца изузетак {ХттпЦлиент цлиент = ХттпЦлиент.невБуилдер (). буилд () ХттпРекуест рекуест = ХттпРекуест (невБуилдер) нови УРИ (хттп://хттпбин.орг/гет)) .ГЕТ () .верзија (ХттпЦлиент.Версион.ХТТП_1_1) .буилд () ХттпРеспонсе.Стринг одговор = цлиент.сенд (захтев, ХттпРеспонсе.БодиХандлер.асСтринг ()) Систем.оут.принтлн ('Статус код:' + респонсе.статусЦоде ())
Систем.оут.принтлн ('Тијело одговора:' + респонсе.боди ())}}}

Јава Схелл Сцриптинг (Реад-Евал-Принт-Лооп) у Јави 9

Сигурно сте видели да се језици, као што су Руби, Сцала, Гроови, Цлојуре и други, испоручују са алатом, који се често назива РЕПЛ ( Реад-Евал-Принт-Лооп ). Овај РЕПЛ алат је изузетно користан у испробавању језичких карактеристика. На пример, у Сцали можемо да напишемо једноставан програм Хелло Ворлд као сцала> принтлн („Здраво свете“)

шта је фабрика у ангуларјс

Неке од предности ЈСхелл РЕПЛ су следећи:

  • Искусни програмери могу брзо да прототипирају и експериментишу пре него што га приме у своју главну базу кода
  • Програмери Јава се сада могу похвалити РЕПЛ-ом

Покренимо команду ЈСхелл, као што је приказано на следећој слици:

Пример ЈСхелл Хелло Ворлд - Јава 9 - Едурека

ЈАР датотеке са више издања садрже функцију Јава 9

Од сада, ЈАР датотеке могу садржавати класе које се могу изводити само на Јава верзији за коју су компајлиране. Да би искористили нове функције Јава платформе на новијим верзијама, програмери библиотека морају да објаве новију верзију своје библиотеке. Ускоро ће програмери одржавати више верзија библиотеке, што може бити ноћна мора. Да би се превазишло ово ограничење, ове функције Јава 9 са више издања ЈАР датотека омогућавају програмерима да граде ЈАР датотеке са различитим верзијама датотека класа за различите верзије Јава.Следећи пример то чини јаснијим.

Ево илустрације тренутних ЈАР датотека:

корен тегле - Класа - Б.разред - Ц.разред

Ево како изгледају ЈАР датотеке са више издања:

корен тегле - Класа - Б.разред - Ц.разред - МЕТА-ИНФ - верзије - 9 - Класа - 10 - Б.разред

На претходној илустрацији, ЈАР датотеке подржавају датотеке класе за две Јава верзије - 9 и 10.

Дакле, када се ранији ЈАР изврши на Јави 9, А.цласс под верзијама - 9 директоријума се покупи за извршење.

На платформи која не подржава ЈАР датотеке са више издања, класе у директоријуму верзија се никада не користе. Дакле, ако покренете ЈАР датотеку са више издања на Јави 8, то је добро као покретање једноставне ЈАР датотеке.

Функција Више ажурирања паралелности у Јави 9

У овом ажурирању, нова класа, јава.утил.цонцуррент.Флов је представљен, који има угнежђене интерфејсе који подржавају имплементацију оквира за објављивање и претплату. Оквир објављивање-претплата омогућава програмерима да граде компоненте које могу асинхроно да троше ток података уживо постављањем издавача који производе податке и претплатника који податке троше путем претплате, која њима управља. Четири нова интерфејса су следећа:

  • јава.утил.цонцуррент.Флов.Публисхер
  • јава.утил.цонцуррент.Флов.Субсцрибер
  • јава.утил.цонцуррент.Флов.Субсцриптион
  • јава.утил.цонцуррент.Флов.Процессор (који делује и као издавач и као претплатник).

Пројект Јигсав у Јави 9

Главни циљ овог пројекта је упознавање концепта модуларност подршка за креирање модула у Јави 9, а затим их применити на ЈДК то је, модуларизовати ЈДК .

Неке од Предности од модуларност су следећи:

  • Снажна инкапсулација : Модули могу приступити само оним деловима модула који су стављени на располагање. Дакле, јавне класе у пакету нису јавне ако се пакет експлицитно не извезе у датотеку са информацијама о модулу.
  • Јасне зависности : Модули морају да изјаве које би друге модуле користили путем клаузуле.
  • Комбиновањем модула за стварање мањег времена извођења, које се лако може прилагодити мањим рачунарским уређајима.
  • Поуздан : Апликације су поузданије уклањањем време извођења грешке . Пример: - мора да вам је пријава заказала током извођења због недостајућих часова, што је резултирало ЦлассНотФоундЕкцептион .

Постоје разни ЈЕП-ови , који су део овог пројекта, како следи:

разлика између постдипломских и мастер студија
  • ЈЕП 200 - модуларни ЈДК : Ово примењује систем модула Јава платформе за модуларизацију ЈДК-а у скуп модула који се могу комбиновати у време компајлирања, времена израде или извршавања.
  • ЈЕП 201 - модуларни изворни код : Ово модулира ЈДК изворни код у модуле и побољшава алате за изградњу за компајлирање модула.
  • ЈЕП 220 - модуларне рунтиме слике : Овим се реструктурирају ЈДК и ЈРЕ рунтиме слике како би се прилагодили модулима и побољшале перформансе, сигурност и одрживост.
  • ЈЕП 260 - инкапсулира већину интерних АПИ-ја : Ово омогућава приступ великом броју интерних АПИ-ја директно или путем рефлексије. Приступ интерним АПИ-јевима који ће се променити прилично је ризичан. Да би се спречила његова употреба, они се инкапсулирају у модуле и само они интерни АПИ који се широко користе постају доступни док одговарајући АПИ не буде на свом месту.
  • ЈЕП 261 - модулни систем : Ово имплементира спецификацију Јава система модула променом програмског језика Јава, ЈВМ и других стандардних АПИ-ја
  • ЈЕП 282: јлинк, Јава повезивач : Ово омогућава модуле паковања и њихове зависности у мања времена рада.

Дакле, све је било у вези са Јава 9 и новим функцијама Јава 9.

Сада када сте разумели карактеристике Јава 9, погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250 000 задовољних ученика раширених широм света.

Г. от питање за нас? Молимо вас да га спомињете у одељку за коментаре овог блога „Јава 9“ и јавићемо вам се што је пре могуће.