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

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

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

Од иновације Јава КСНУМКС може се ознака:

  • Уграђени подршка за алгоритам за креирање дигиталног потписа ЕдДСА (Едвардс-Цурве Дигитал Сигнатуре Алгоритам) РФЦ КСНУМКС). Предложена имплементација ЕдДСА не зависи од хардверских платформи, заштићена је од напада са стране канала (обезбеђено је константно време свих прорачуна) и бржа је у перформансама од постојеће ЕЦДСА имплементације написане у Ц језику, са истим нивоом заштите. На пример, ЕдДСА који користи елиптичку криву са 126-битним кључем показује сличне перформансе као ЕЦДСА са сецп256р1 елиптичном кривом и 128-битним кључем.
  • Додато експериментална подршка за запечаћене класе и интерфејсе, које друге класе и интерфејси не могу користити за наслеђивање, проширење или надјачавање имплементације. Запечаћене класе такође пружају декларативнији начин ограничавања употребе суперкласе од модификатора приступа, на основу експлицитног навођења поткласа дозвољених за проширење.

    пакет цом.екампле.геометри;

    јавна запечаћена класа Облик
    дозвољава цом.екампле.полар.Цирцле,
    цом.екампле.куад.Рецтангле,
    цом.екампле.куад.симпле.Скуаре {…}

  • Додато подршка за скривене класе које се не могу директно користити бајт кодом других класа. Кључна сврха скривених класа је да се користе у оквирима који динамички генеришу класе током извршавања и користе их индиректно, преко одраз. Такве класе обично имају ограничен животни циклус, тако да њихово одржавање за приступ из статички генерисаних класа није оправдано и само ће довести до повећане потрошње меморије. Скривене класе такође елиминишу потребу за нестандардним АПИ сун.мисц.Унсафе::дефинеАнонимоусЦласс, који је предвиђен за уклањање у будућности.
  • ЗГЦ (З Гарбаге Цоллецтор) сакупљач смећа је стабилизован и препознат је као спреман за широку употребу. ЗГЦ ради у пасивном режиму, минимизира кашњење због сакупљања смећа што је више могуће (време застоја када се користи ЗГЦ не прелази 10 мс.) и може да ради и са малим и са огромним хрпама, величине од неколико стотина мегабајта до много терабајта.
  • Стабилизиран и спреман за општу употребу
    Ђубретар Схенандоах, рад са минималним паузама (Лов-Паусе-Тиме Гарбаге Цоллецтор). Схенандоах је развио Ред Хат и познат је по коришћењу алгоритма који смањује време застоја током сакупљања смећа покретањем чишћења паралелно са извршавањем Јава апликација. Величина кашњења које уноси сакупљач смећа је предвидљива и не зависи од величине гомиле, тј. за хрпе од 200 МБ и 200 ГБ кашњења ће бити идентична (не излази преко 50 мс и обично унутар 10 мс);

  • Подршка је стабилизована и уведена у језик текстуални блокови - нови облик стринг литерала који вам омогућава да укључите текстуалне податке у више редова у изворни код без коришћења избегавања знакова и очувања оригиналног обликовања текста у блоку. Блок је уоквирен са три двострука наводника.

    На пример, уместо кода

    Стринг хтмл = "" +
    "\н\т" + "" +
    "\н\т\т" + "\"Јава 1 је овде!\"" +
    "\н\т" + "" +
    "\н" + "";

    можете одредити:

    Стринг хтмл = """


    »Јава 1\
    је овде!“

    """;

  • Прерађено Застарели АПИ за ДатаграмСоцкет. Старе имплементације јава.нет.ДатаграмСоцкет и јава.нет.МултицастСоцкет замењене су модерном имплементацијом која је лакша за отклањање грешака и одржавање, а такође је компатибилна са виртуелним токовима развијеним у оквиру пројекта Разбој. У случају могуће некомпатибилности са постојећим кодом, стара имплементација није уклоњена и може се омогућити коришћењем опције јдк.нет.усеПлаинДатаграмСоцкетИмпл.
  • Предложена друга експериментална имплементација поклапање облика у оператору „инстанцеоф“, који вам омогућава да одмах дефинишете локалну променљиву за приступ провереној вредности. На пример, можете одмах написати „иф (обј инстанцеоф Стринг с && с.ленгтх() > 5) {.. с.цонтаинс(..) ..}“ без експлицитног дефинисања „Стринг с = (Стринг) обј“.

    Било је:

    иф (обј инстанцеоф Гроуп) {
    Групна група = (Група)обј;
    вар ентриес = гроуп.гетЕнтриес();
    }

    Сада можете без дефиниције „Гроуп гроуп = (Гроуп) обј“:

    иф (обј инстанцеоф Гроуп гроуп) {
    вар ентриес = гроуп.гетЕнтриес();
    }

  • Предложено друга експериментална примена кључне речи "запис“, који обезбеђује компактан облик за дефинисање класа, омогућавајући вам да избегнете експлицитно дефинисање различитих метода ниског нивоа као што су екуалс(), хасхЦоде() и тоСтринг() у случајевима када се подаци чувају само у пољима чије се понашање не мења. Када класа користи стандардне имплементације метода екуалс(), хасхЦоде() и тоСтринг(), може без њихове експлицитне дефиниције:

    јавни запис Банкарска трансакција (ЛоцалДате датум,
    двоструки износ
    Опис стринга) {}

    Ова декларација ће аутоматски додати имплементације метода екуалс(), хасхЦоде() и тоСтринг() поред метода конструктора и геттер.

  • Предложено други преглед АПИ-ја за приступ страној меморији, омогућавајући Јава апликацијама да безбедно и ефикасно приступају меморијским регионима изван Јава хрпе манипулисањем новим апстракцијама МемориСегмент, МемориАддресс и МемориЛаиоут.
  • Онемогућено и застарели технику оптимизације пристрасног закључавања која се користи у ХотСпот ЈВМ-у да би се смањили трошкови закључавања. Ова техника је изгубила на значају на системима са атомским упутствима које обезбеђују савремени процесори, и због своје сложености је превише радно интензивна за одржавање.
  • Најавио застарели механизам РМИ активација, који ће бити уклоњен у будућем издању. Примећено је да је РМИ активација застарела, свргнута у категорију опција у Јави 8 и да се скоро никада не користи у савременој пракси.
  • Избрисан ЈаваСцрипт енгине носорог, који је застарео у Јава СЕ 11.
  • Уклоњено портови за Соларис ОС и СПАРЦ процесоре (Соларис/СПАРЦ, Соларис/к64 и Линук/СПАРЦ). Уклањање ових портова ће омогућити заједници да убрза развој нових ОпенЈДК функција без губљења времена на одржавање карактеристика специфичних за Соларис и СПАРЦ.

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

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