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

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

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

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

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

    Било је:

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

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

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

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

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

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

  • Стандардизовано и подршка за нови облик „свитцх“ израза је подразумевано омогућена, што не захтева навођење оператора „бреак“, омогућава вам да комбинујете поновљене ознаке и може се користити не само у облику оператора, већ и као израз.

    вар лог = прекидач (догађај) {
    случај ПЛАИ -> “Корисник је активирао дугме за репродукцију”;
    случај СТОП, ПАУСЕ -> “Кориснику је потребна пауза”;
    подразумевано -> {
    Стринг порука = евент.тоСтринг();
    ЛоцалДатеТиме нов = ЛоцалДатеТиме.нов();
    ииелд "Непознати догађај" + порука +
    » пријављен » + сада;
    }
    };

  • Проширена експериментална подршка текстуални блокови - нови облик стринг литерала који вам омогућава да укључите текстуалне податке у више редова у изворни код без коришћења избегавања знакова и очувања оригиналног обликовања текста у блоку. Блок је уоквирен са три двострука наводника. У Јави 14, текстуални блокови сада подржавају излазну секвенцу „\с“ за дефинисање једног размака и „\“ за спајање са следећим редом (игноришући нове редове када треба да одштампате веома дуг ред). На пример, уместо кода

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

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

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


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

    """;

  • Проширен је информативни садржај дијагностике када се појаве изузеци НуллПоинтерЕкцептион. Док се раније порука о грешци односила само на број линије, сада садржи детаље који метод је узроковао изузетак. Напредна дијагностика је тренутно омогућена само када се покрене са заставицом „-КСКС:+СховЦодеДетаилсИнЕкцептионМессагес“. На пример, када наведете ову заставу, изузетак у реду

    вар наме = усер.гетЛоцатион().гетЦити().гетНаме();

    резултираће поруком

    Изузетак у нити "маин" јава.ланг.НуллПоинтерЕкцептион: Не може да се позове "Лоцатион.гетЦити()"
    јер је повратна вредност „Усер.гетЛоцатион()“ нула
    на НуллПоинтерЕкампле.маин(НуллПоинтерЕкампле.јава:5):5)

    што јасно даје до знања да метода Лоцатион.гетЦити() није позвана и да је Усер.гетЛоцатион() вратио нулл.

  • Имплементирано Преглед услужног програма јпацкаге, који вам омогућава да креирате пакете за самосталне Јава апликације. Услужни програм је заснован на јавапацкагер-у из ЈаваФКС-а и омогућава вам да креирате пакете у форматима који су изворни за различите платформе (мси и еке за Виндовс, пкг и дмг за мацОС, деб и рпм за Линук). Пакети укључују све потребне зависности.
  • До Г1 ђубретара додато нови механизам алокације меморије који узима у обзир специфичности рада на великим системима који користе архитектуру НУМА. Нови алокатор меморије је омогућен помоћу ознаке „+КСКС:+УсеНУМА“ и може значајно побољшати перформансе на НУМА системима.
  • Додато АПИ за праћење догађаја ЈФР (ЈДК Флигхт Рецордер) у ходу, на пример за организовање континуираног праћења.
  • Додато јдк.нио.мапмоде модул, који нуди нове режиме (РЕАД_ОНЛИ_СИНЦ, ВРИТЕ_ОНЛИ_СИНЦ) за креирање мапираних бафера бајтова (МаппедБитеБуффер) који упућују на непроменљиву меморију (НВМ).
  • Имплементирано Преглед АПИ-ја за приступ страној меморији, који омогућава Јава апликацијама да безбедно и ефикасно приступају меморијским регионима изван Јава хрпе манипулисањем новим апстракцијама МемориСегмент, МемориАддресс и МемориЛаиоут.
  • Најавио застарели портови за Соларис ОС и СПАРЦ процесоре (Соларис/СПАРЦ, Соларис/к64 и Линук/СПАРЦ) са намером да се ови портови уклоне у будућности. Застарелост ових портова ће омогућити заједници да убрза развој нових ОпенЈДК функција без губљења времена на одржавање карактеристика специфичних за Соларис и СПАРЦ.
  • Избрисан сакупљач смећа ЦМС (Цонцуррент Марк Свееп), који је пре две године означен као застарео и остао неодржаван (ЦМС је одавно замењен Г1 сакупљачем смећа). Осим тога, најавио застарела употреба комбинације параллелСцавенге и СериалОлд алгоритама за сакупљање смећа (покренути са опцијама „-КСКС:+УсеПараллелГЦ -КСКС:-УсеПараллелОлдГЦ“).
  • Експериментална подршка за ЗГЦ (З Гарбаге Цоллецтор) сакупљач смећа је обезбеђена на мацОС и Виндовс платформама (раније подржано само на Линук-у). ЗГЦ ради у пасивном режиму, минимизира кашњење због сакупљања смећа што је више могуће (време застоја када се користи ЗГЦ не прелази 10 мс.) и може да ради и са малим и са огромним хрпама, величине од неколико стотина мегабајта до много терабајта.
  • Уклоњено Комплет алата и АПИ за компримовање ЈАР датотека помоћу Пацк200 алгоритма.

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

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