Paglabas ng Java SE 19

Pagkatapos ng anim na buwan ng pag-unlad, inilabas ng Oracle ang platform ng Java SE 19 (Java Platform, Standard Edition 19), na gumagamit ng OpenJDK open source na proyekto bilang isang reference na pagpapatupad. Maliban sa pag-alis ng ilang mga hindi na ginagamit na feature, ang Java SE 19 ay nagpapanatili ng backward compatibility sa mga nakaraang release ng Java platformβ€”ang karamihan sa mga naunang naisulat na mga proyekto sa Java ay gagana pa rin nang walang pagbabago kapag pinapatakbo sa ilalim ng bagong bersyon. Ang mga mai-install na build ng Java SE 19 (JDK, JRE, at Server JRE) ay inihanda para sa Linux (x86_64, AArch64), Windows (x86_64), at macOS (x86_64, AArch64). Binuo ng proyekto ng OpenJDK, ang pagpapatupad ng Java 19 reference ay ganap na open source sa ilalim ng lisensya ng GPLv2 na may mga pagbubukod sa GNU ClassPath upang payagan ang dynamic na pag-link sa mga komersyal na produkto.

Ang Java SE 19 ay ikinategorya bilang isang regular na release ng suporta, na may mga update na ilalabas bago ang susunod na release. Ang sangay ng Long Term Support (LTS) ay dapat na Java SE 17, na makakatanggap ng mga update hanggang 2029. Alalahanin na simula sa paglabas ng Java 10, lumipat ang proyekto sa isang bagong proseso ng pag-unlad, na nagpapahiwatig ng isang mas maikling cycle para sa pagbuo ng mga bagong release. Binubuo na ngayon ang bagong functionality sa isang master branch na patuloy na ina-update, na isinasama ang mga nakumpleto nang pagbabago at kung saan ang mga branch ay sinasanga tuwing anim na buwan upang patatagin ang mga bagong release.

Kasama sa mga bagong feature sa Java 19 ang:

  • Ang paunang suporta para sa mga pattern ng rekord ay iminungkahi, na nagpapalawak ng kakayahan sa pagtutugma ng pattern ng Java 16 upang mai-parse ang mga halaga ng mga klase ng uri ng talaan. Halimbawa: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Nagbibigay ang mga Linux build ng suporta para sa arkitektura ng RISC-V.
  • Nagdagdag ng paunang suporta para sa FFM (Foreign Function & Memory) API, na nagbibigay-daan sa iyong ayusin ang pakikipag-ugnayan ng mga Java program na may panlabas na code at data sa pamamagitan ng mga function ng pagtawag mula sa mga panlabas na aklatan at pag-access ng memorya sa labas ng JVM.
  • Nagdagdag ng suporta para sa mga virtual na thread, na mga magaan na thread na lubos na nagpapasimple sa pagsulat at pagpapanatili ng mataas na pagganap ng mga multi-threaded na application.
  • Ang ika-apat na paunang pagpapatupad ng Vector API ay iminungkahi, na nagbibigay ng mga function para sa mga kalkulasyon ng vector na isinagawa gamit ang mga tagubilin ng vector ng x86_64 at AArch64 na mga processor at nagbibigay-daan sa iyo na sabay na ilapat ang mga operasyon sa ilang mga halaga nang sabay-sabay (SIMD). Hindi tulad ng mga kakayahan na ibinigay sa HotSpot JIT compiler para sa autovectorization ng scalar operations, ginagawang posible ng bagong API na tahasang kontrolin ang vectorization para sa parallel na pagproseso ng data.
  • Ang pangatlong pang-eksperimentong pagpapatupad ng pagtutugma ng pattern sa mga expression ng switch ay idinagdag, na nagbibigay-daan sa paggamit ng mga flexible na template sa mga label ng kaso na sumasaklaw sa isang serye ng mga halaga nang sabay-sabay, kung saan ang mga masalimuot na chain ng if...else na mga pahayag ay dati nang ginamit. Bagay 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); default -> o.toString(); };
  • Nagdagdag ng eksperimental na Structured Parallelism API na nagpapadali sa pagbuo ng mga multi-threaded na application sa pamamagitan ng pagtrato sa maraming gawain na tumatakbo sa iba't ibang thread bilang isang unit.

Pinagmulan: opennet.ru

Magdagdag ng komento