Издање Јава СЕ 20

Након шест месеци развоја, Орацле је објавио Јава СЕ 20 (Јава платформа, стандардно издање 20), који користи ОпенЈДК опен соурце пројекат као референтну имплементацију. Са изузетком уклањања неких застарелих функција, Јава СЕ 20 одржава компатибилност уназад са претходним издањима Јава платформе – већина претходно написаних Јава пројеката ће радити без промена када се покрене под новом верзијом. Верзије Јава СЕ 20 спремне за инсталацију (ЈДК, ЈРЕ и Сервер ЈРЕ) припремљене су за Линук (к86_64, ААрцх64), Виндовс (к86_64) и мацОС (к86_64, ААрцх64). Развијена од стране ОпенЈДК пројекта, Јава 20 референтна имплементација је потпуно отвореног кода под ГПЛв2 лиценцом, са ГНУ ЦлассПатх изузецима који дозвољавају динамичко повезивање са комерцијалним производима.

Јава СЕ 20 је класификована као издање опште подршке и наставиће да добија ажурирања до следећег издања. Грана за дугорочну подршку (ЛТС) би требало да буде Јава СЕ 17, која ће наставити да добија ажурирања до 2029. године. Подсетимо, почевши од издавања Јаве 10, пројекат је прешао на нови развојни процес, подразумевајући краћи циклус за формирање нових издања. Нова функционалност је сада развијена у једној стално ажурираној главној грани, која укључује готове промене и из које се гране гранају сваких шест месеци како би се стабилизовала нова издања.

Нове функције у Јави 20 укључују:

  • Постоји прелиминарна подршка за вредности у опсегу, што омогућава да се непроменљиви подаци деле кроз нити и да се подаци ефикасно размењују између подређених нити (вредности се наслеђују). Вредности опсега се развијају да замене механизам локалних променљивих нити и ефикасније су када се користи веома велики број виртуелних нити (хиљаде или милиони нити). Главна разлика између вредности опсега и локалних варијабли нити је у томе што се прве пишу једном, не могу се мењати у будућности и остају доступне само током трајања извршавања нити. цласс Сервер { финал статиц СцопедВалуе ЦУРРЕНТ_УСЕР = нев СцопедВалуе(); воид серве(Захтев захтева, одговор одговора) { вар левел = (захтев. исАутхоризед()? АДМИН : ГОСТ); вар корисник = нови корисник (ниво); СцопедВалуе.вхере(ЦУРРЕНТ_УСЕР, усер).рун(() -> Апплицатион.хандле(рекуест, респонсе)); } } цласс ДатабасеМанагер { ДБЦоннецтион опен() { вар усер = Сервер.ЦУРРЕНТ_УСЕР.гет(); иф (!усер.цанОпен()) тхров нев ИнвалидУсерЕкцептион(); ретурн нев ДБЦоннецтион(...); } }
  • Додан је други преглед образаца записа, који проширује функцију подударања шаблона уведену у Јаву 16 да рашчлани вредности класа записа. На пример: рецорд Поинт(инт к, инт и) {} статиц воид принтСум(Објецт обј) { иф (обј инстанцеоф Поинт п) { инт к = пк(); инт и = пи(); Систем.оут.принтлн(к+и); } }
  • Додата је четврта прелиминарна имплементација подударања шаблона у „свитцх“ изјавама, омогућавајући ознакама „цасе“ да користе не тачне вредности, већ флексибилне обрасце који покривају низ вредности одједном, за које је раније било неопходно користити гломазне ланци израза „ако...друго”. статиц Стринг форматтерПаттернСвитцх(Објецт обј) { ретурн свитцх (обј) { цасе Интегер и -> Стринг.формат("инт %д", и); цасе Лонг л -> Стринг.формат("лонг %д", л); цасе Доубле д -> Стринг.формат("доубле %ф", д); цасе Стринг с -> Стринг.формат("Стринг %с", с); дефаулт -> о.тоСтринг(); }; }
  • Додата је друга прелиминарна имплементација ФФМ (Фореигн Фунцтион & Мемори) АПИ, која вам омогућава да организујете интеракцију Јава програма са спољним кодом и подацима путем позивања функција из спољних библиотека и приступа меморији ван ЈВМ-а.
  • Додан је други преглед виртуелних нити, које су лагане нити које у великој мери поједностављују писање и одржавање вишенитних апликација високих перформанси.
  • Додан је други експериментални АПИ за структурирани паралелизам, који поједностављује развој апликација са више нити третирајући више задатака који се покрећу у различитим нитима као један блок.
  • Додан је пети преглед векторског АПИ-ја који пружа функције за векторске прорачуне које се изводе помоћу векторских инструкција на к86_64 и ААрцх64 процесорима и омогућавају да се операције истовремено примењују на више вредности (СИМД). За разлику од могућности које пружа ХотСпот ЈИТ компајлер за аутоматску векторизацију скаларних операција, нови АПИ омогућава експлицитну контролу векторизације за паралелну обраду података.

Извор: опеннет.ру

Додај коментар