Java SE 19-ի թողարկում

Վեց ամիս մշակումից հետո Oracle-ը թողարկեց Java SE 19-ը (Java Platform, Standard Edition 19), որն օգտագործում է բաց կոդով OpenJDK նախագիծը որպես հղման իրականացում: Բացառությամբ որոշ հնացած գործառույթների հեռացման, Java SE 19-ը պահպանում է հետընթաց համատեղելիությունը Java պլատֆորմի նախորդ թողարկումների հետ. նախկինում գրված Java նախագծերի մեծ մասը կաշխատի առանց փոփոխությունների, երբ գործարկվի նոր տարբերակով: Java SE 19-ի (JDK, JRE և Server JRE) տեղադրման համար պատրաստ կառուցումները պատրաստված են Linux (x86_64, AArch64), Windows (x86_64) և macOS (x86_64, AArch64) համար: OpenJDK նախագծի կողմից մշակված Java 19 հղումների իրականացումը լիովին բաց կոդով է GPLv2 լիցենզիայի ներքո, GNU ClassPath բացառություններով, որոնք թույլ են տալիս դինամիկ կապ հաստատել առևտրային արտադրանքների հետ:

Java SE 19-ը դասակարգվում է որպես սովորական աջակցության թողարկում և կշարունակի թարմացումներ ստանալ մինչև հաջորդ թողարկումը: Երկարաժամկետ աջակցության (LTS) մասնաճյուղը պետք է լինի Java SE 17, որը կշարունակի թարմացումներ ստանալ մինչև 2029 թվականը: Հիշեցնենք, որ Java 10-ի թողարկումից սկսած՝ նախագիծն անցավ զարգացման նոր գործընթացի՝ ենթադրելով ավելի կարճ ցիկլ նոր թողարկումների ձևավորման համար։ Նոր ֆունկցիոնալությունն այժմ մշակվում է մեկ անընդհատ թարմացվող գլխավոր մասնաճյուղում, որը ներառում է պատրաստի փոփոխություններ և որից մասնաճյուղերը բաժանվում են յուրաքանչյուր վեց ամիսը մեկ՝ նոր թողարկումները կայունացնելու համար:

Java 19-ի նոր հնարավորությունները ներառում են.

  • Առաջարկվել է ձայնագրման օրինաչափությունների նախնական աջակցություն՝ ընդլայնելով Java 16-ում ներդրված օրինաչափությունների համընկնման հատկանիշը՝ ձայնագրությունների դասերի արժեքները վերլուծելու գործիքներով: Օրինակ՝ գրառում Point(int x, int y) {} void printSum(Object o) {if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Linux-ի կառուցվածքները ապահովում են RISC-V ճարտարապետության աջակցություն:
  • Ավելացվել է նախնական աջակցություն FFM (Օտար գործառույթ և հիշողություն) API-ին, որը թույլ է տալիս կազմակերպել Java ծրագրերի փոխազդեցությունը արտաքին կոդի և տվյալների հետ՝ կանչելով գործառույթներ արտաքին գրադարաններից և մուտք գործելով հիշողություն JVM-ից դուրս:
  • Ավելացված է աջակցություն վիրտուալ թելերի համար, որոնք թեթև թելեր են, որոնք մեծապես պարզեցնում են բարձր արդյունավետությամբ բազմաթելային հավելվածների գրելն ու սպասարկումը:
  • Առաջարկվել է Vector API-ի չորրորդ նախադիտումը, որն ապահովում է վեկտորային հաշվարկների գործառույթներ, որոնք կատարվում են x86_64 և AArch64 պրոցեսորների վրա վեկտորային հրահանգների միջոցով և թույլ են տալիս միաժամանակ կիրառվել բազմաթիվ արժեքների (SIMD) վրա: Ի տարբերություն HotSpot JIT կոմպիլյատորում տրված հնարավորությունների՝ սկալյար գործողությունների ավտոմատ վեկտորացման համար, նոր API-ն հնարավորություն է տալիս բացահայտորեն վերահսկել վեկտորացումը տվյալների զուգահեռ մշակման համար:
  • Ավելացվել է «անջատիչ» արտահայտություններում օրինաչափությունների համապատասխանության երրորդ փորձարարական իրականացումը, որը թույլ է տալիս «case» պիտակներում օգտագործել ոչ թե ճշգրիտ արժեքները, այլ միանգամից մի շարք արժեքներ ընդգրկող ճկուն նախշեր, որոնց համար նախկինում անհրաժեշտ էր. օգտագործեք «եթե... ուրիշ» արտահայտությունների ծանր շղթաներ: Օբյեկտ o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); լռելյայն -> o.toString(); };
  • Ավելացվեց փորձարարական API՝ կառուցվածքային զուգահեռության համար, որը հեշտացնում է բազմաշերտ հավելվածների զարգացումը` տարբեր թելերում կատարվող բազմաթիվ առաջադրանքները որպես մեկ բլոկ դիտարկելով:

Source: opennet.ru

Добавить комментарий