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

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

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

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

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

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

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