Java SE 19 เป€เบ›เบตเบ”เบ•เบปเบง

เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบปเบเป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, Oracle เป„เบ”เป‰เบ›เปˆเบญเบเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก Java SE 19 (Java Platform, Standard Edition 19), เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” OpenJDK เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡. เบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบšเบฒเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบ, Java SE 19 เบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบธเป‰เบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เบญเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก Java - เป‚เบ„เบ‡เบเบฒเบ™ Java เบ—เบตเปˆเบ‚เบฝเบ™เป„เบงเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบˆเบฐเบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฒเบเปƒเบ•เป‰เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ. เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบžเป‰เบญเบกเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡ Java SE 19 (JDK, JRE, เปเบฅเบฐเป€เบŠเบตเบšเป€เบงเบต 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 ะฟั€ะพะตะบั‚ ะฟะตั€ะตัˆั‘ะป ะฝะฐ ะฝะพะฒั‹ะน ะฟั€ะพั†ะตัั ั€ะฐะทั€ะฐะฑะพั‚ะบะธ, ะฟะพะดั€ะฐะทัƒะผะตะฒะฐัŽั‰ะธะน ะฑะพะปะตะต ะบะพั€ะพั‚ะบะธะน ั†ะธะบะป ั„ะพั€ะผะธั€ะพะฒะฐะฝะธั ะฝะพะฒั‹ั… ั€ะตะปะธะทะพะฒ. ะะพะฒะฐั ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝะพัั‚ัŒ ั‚ะตะฟะตั€ัŒ ั€ะฐะทะฒะธะฒะฐะตั‚ัั ะฒ ะพะดะฝะพะน ะฟะพัั‚ะพัะฝะฝะพ ะพะฑะฝะพะฒะปัะตะผะพะน master-ะฒะตั‚ะบะต, ะฒ ะบะพั‚ะพั€ัƒัŽ ะฒะบะปัŽั‡ะฐัŽั‚ัั ัƒะถะต ะณะพั‚ะพะฒั‹ะต ะธะทะผะตะฝะตะฝะธั ะธ ะพั‚ ะบะพั‚ะพั€ะพะน ั€ะฐะท ะฒ ัˆะตัั‚ัŒ ะผะตััั†ะตะฒ ะพั‚ะฒะตั‚ะฒะปััŽั‚ัั ะฒะตั‚ะบะธ ะดะปั ัั‚ะฐะฑะธะปะธะทะฐั†ะธะธ ะฝะพะฒั‹ั… ะฒั‹ะฟัƒัะบะพะฒ.

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆเปƒเบ™ Java 19 เบ›เบฐเบเบญเบšเบกเบต:

  • ะŸั€ะตะดะปะพะถะตะฝะฐ ะฟั€ะตะดะฒะฐั€ะธั‚ะตะปัŒะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ ัˆะฐะฑะปะพะฝะพะฒ ะทะฐะฟะธัะตะน (record pattern), ั€ะฐััˆะธั€ััŽั‰ะฐั ะฟะพัะฒะธะฒัˆัƒัŽัั ะฒ Java 16 ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะพะฟะพัั‚ะฐะฒะปะตะฝะธั ั ะพะฑั€ะฐะทั†ะพะผ ัั€ะตะดัั‚ะฒะฐะผะธ ะดะปั ั€ะฐะทะฑะพั€ะฐ ะทะฝะฐั‡ะตะฝะธะน ะบะปะฐััะพะฒ ั‚ะธะฟะฐ record. ะะฐะฟั€ะธะผะตั€: record 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.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟั€ะตะดะฒะฐั€ะธั‚ะตะปัŒะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ API FFM (Foreign Function & Memory), ะฟะพะทะฒะพะปััŽั‰ะตะณะพ ะพั€ะณะฐะฝะธะทะพะฒะฐั‚ัŒ ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธะต Java-ะฟั€ะพะณั€ะฐะผะผ ั ะฒะฝะตัˆะฝะธะผะธ ะบะพะดะพะผ ะธ ะดะฐะฝะฝั‹ะผะธ ั‡ะตั€ะตะท ะฒั‹ะทะพะฒ ั„ัƒะฝะบั†ะธะน ะธะท ะฒะฝะตัˆะฝะธั… ะฑะธะฑะปะธะพั‚ะตะบ ะธ ะดะพัั‚ัƒะฟ ะบ ะฟะฐะผัั‚ะธ ะฒะฝะต JVM.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฒะธั€ั‚ัƒะฐะปัŒะฝั‹ั… ะฟะพั‚ะพะบะพะฒ, ะฟั€ะตะดัั‚ะฐะฒะปััŽั‰ะธั… ัะพะฑะพะน ะปะตะณะบะพะฒะตัะฝั‹ะต ะฟะพั‚ะพะบะธ, ะทะฝะฐั‡ะธั‚ะตะปัŒะฝะพ ัƒะฟั€ะพั‰ะฐัŽั‰ะธะต ะฝะฐะฟะธัะฐะฝะธะต ะธ ัะพะฟั€ะพะฒะพะถะดะตะฝะธะต ะฒั‹ัะพะบะพะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝั‹ั… ะผะฝะพะณะพะฟะพั‚ะพั‡ะฝั‹ั… ะฟั€ะธะปะพะถะตะฝะธะน.
  • ะŸั€ะตะดะปะพะถะตะฝะฐ ั‡ะตั‚ะฒั‘ั€ั‚ะฐั ะฟั€ะตะดะฒะฐั€ะธั‚ะตะปัŒะฝะฐั ั€ะตะฐะปะธะทะฐั†ะธั API Vector, ะฟั€ะตะดะพัั‚ะฐะฒะปััŽั‰ะตะณะพ ั„ัƒะฝะบั†ะธะธ ะดะปั ะฒะตะบั‚ะพั€ะฝั‹ั… ะฒั‹ั‡ะธัะปะตะฝะธะน, ะบะพั‚ะพั€ั‹ะต ะฒั‹ะฟะพะปะฝััŽั‚ัั ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ะฒะตะบั‚ะพั€ะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน ะฟั€ะพั†ะตััะพั€ะพะฒ x86_64 ะธ AArch64 ะธ ะฟะพะทะฒะพะปััŽั‚ ะพะดะฝะพะฒั€ะตะผะตะฝะฝะพ ะฟั€ะธะผะตะฝะธั‚ัŒ ะพะฟะตั€ะฐั†ะธะธ ัั€ะฐะทัƒ ะบ ะฝะตัะบะพะปัŒะบะธะผ ะทะฝะฐั‡ะตะฝะธัะผ (SIMD). ะ’ ะพั‚ะปะธั‡ะธะต ะพั‚ ะฟั€ะตะดะพัั‚ะฐะฒะปัะตะผั‹ั… ะฒ JIT-ะบะพะผะฟะธะปัั‚ะพั€ะต HotSpot ะฒะพะทะผะพะถะฝะพัั‚ะตะน ะฟะพ ะฐะฒั‚ะพะฒะตะบั‚ะพั€ะธะทะฐั†ะธะธ ัะบะฐะปัั€ะฝั‹ั… ะพะฟะตั€ะฐั†ะธะน, ะฝะพะฒั‹ะน API ะดะฐั‘ั‚ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะฒะฝะพ ัƒะฟั€ะฐะฒะปัั‚ัŒ ะฒะตะบั‚ะพั€ะธะทะฐั†ะธะตะน ะดะปั ะฟะฐั€ะฐะปะปะตะปัŒะฝะพะน ะพะฑั€ะฐะฑะพั‚ะบะธ ะดะฐะฝะฝั‹ั….
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ั‚ั€ะตั‚ัŒั ัะบัะฟะตั€ะธะผะตะฝั‚ะฐะปัŒะฝะฐั ั€ะตะฐะปะธะทะฐั†ะธั ัะพะฟะพัั‚ะฐะฒะปะตะฝะธั ะฟะพ ัˆะฐะฑะปะพะฝัƒ ะฒ ะฒั‹ั€ะฐะถะตะฝะธัั… ยซswitchยป, ะฟะพะทะฒะพะปััŽั‰ะฐั ะฒ ะผะตั‚ะบะฐั… ยซcaseยป ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะฝะต ั‚ะพั‡ะฝั‹ะต ะทะฝะฐั‡ะตะฝะธั, ะฐ ะณะธะฑะบะธะต ัˆะฐะฑะปะพะฝั‹, ะพั…ะฒะฐั‚ั‹ะฒะฐัŽั‰ะธะต ัั€ะฐะทัƒ ัะตั€ะธัŽ ะทะฝะฐั‡ะตะฝะธะน, ะดะปั ะบะพั‚ะพั€ั‹ั… ั€ะฐะฝะตะต ะฟั€ะธั…ะพะดะธะปะพััŒ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะณั€ะพะผะพะทะดะบะธะต ั†ะตะฟะพั‡ะบะธ ะฒั‹ั€ะฐะถะตะฝะธะน ยซifโ€ฆelseยป. Object 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(); };
  • ะ”ะพะฑะฐะฒะปะตะฝ ัะบัะฟะตั€ะธะผะตะฝั‚ะฐะปัŒะฝั‹ะน API ะดะปั cั‚ั€ัƒะบั‚ัƒั€ะธั€ะพะฒะฐะฝะฝะพะณะพ ะฟะฐั€ะฐะปะปะตะปะธะทะผะฐ, ัƒะฟั€ะพั‰ะฐัŽั‰ะธะน ั€ะฐะทั€ะฐะฑะพั‚ะบัƒ ะผะฝะพะณะพะฟะพั‚ะพั‡ะฝั‹ั… ะฟั€ะธะปะพะถะตะฝะธะน ะทะฐ ัั‡ั‘ั‚ ะพะฑั€ะฐะฑะพั‚ะบะธ ะฝะตัะบะพะปัŒะบะธั… ะทะฐะดะฐั‡, ะฒั‹ะฟะพะปะฝัะตะผั‹ั… ะฒ ั€ะฐะทะฝั‹ั… ะฟะพั‚ะพะบะฐั…, ะบะฐะบ ะตะดะธะฝะพะณะพ ะฑะปะพะบะฐ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™