ืžื”ื“ื•ืจืช Java SE 19

ืœืื—ืจ ืฉื™ืฉื” ื—ื•ื“ืฉื™ื ืฉืœ ืคื™ืชื•ื—, ืื•ืจืงืœ ืฉื—ืจืจื” ืืช ืคืœื˜ืคื•ืจืžืช 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). ืžื™ืžื•ืฉ ื”ื”ืชื™ื™ื—ืกื•ืช ืฉืœ Java 19, ืฉืคื•ืชื— ืขืœ ื™ื“ื™ ืคืจื•ื™ืงื˜ OpenJDK, ืคืชื•ื— ื‘ืžืœื•ืื• ืชื—ืช ืจื™ืฉื™ื•ืŸ GPLv2 ืขื ื—ืจื™ื’ื™ื ืฉืœ GNU ClassPath ื›ื“ื™ ืœืืคืฉืจ ืงื™ืฉื•ืจ ื“ื™ื ืžื™ ืœืžื•ืฆืจื™ื ืžืกื—ืจื™ื™ื.

Java SE 19 ืžืกื•ื•ื’ืช ื›ื’ืจืกืช ืชืžื™ื›ื” ืจื’ื™ืœื”, ืขื ืขื“ื›ื•ื ื™ื ืฉื™ืฉื•ื—ืจืจื• ืœืคื ื™ ื”ืžื”ื“ื•ืจื” ื”ื‘ืื”. ืขื ืฃ ื”ืชืžื™ื›ื” ืœื˜ื•ื•ื— ืืจื•ืš (LTS) ืฆืจื™ืš ืœื”ื™ื•ืช Java SE 17, ืฉื™ืงื‘ืœ ืขื“ื›ื•ื ื™ื ืขื“ 2029. ื ื–ื›ื™ืจ ื›ื™ ื”ื—ืœ ืžื”ืฉื—ืจื•ืจ ืฉืœ Java 10, ื”ืคืจื•ื™ืงื˜ ืขื‘ืจ ืœืชื”ืœื™ืš ืคื™ืชื•ื— ื—ื“ืฉ, ืืฉืจ ืžืจืžื– ืขืœ ืžื—ื–ื•ืจ ืงืฆืจ ื™ื•ืชืจ ืœื”ื™ื•ื•ืฆืจื•ืช ืžื”ื“ื•ืจื•ืช ื—ื“ืฉื•ืช. ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื—ื“ืฉื” ืžืคื•ืชื—ืช ื›ืขืช ื‘ืกื ื™ืฃ ืžืืกื˜ืจ ืื—ื“ ื”ืžืชืขื“ื›ืŸ ื›ืœ ื”ื–ืžืŸ, ื”ืžืฉืœื‘ ืฉื™ื ื•ื™ื™ื ืฉื›ื‘ืจ ื”ื•ืฉืœืžื• ื•ืžืžื ื• ืžืกืชืขืคื™ื ืกื ื™ืคื™ื ื›ืœ ื—ืฆื™ ืฉื ื” ื›ื“ื™ ืœื™ื™ืฆื‘ ืžื”ื“ื•ืจื•ืช ื—ื“ืฉื•ืช.

ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ื‘-Java 19 ื›ื•ืœืœื•ืช:

  • ื”ื•ืฆืขื” ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ืœื“ืคื•ืกื™ ืจืฉื•ืžื•ืช, ื”ืžืจื—ื™ื‘ื” ืืช ืชื›ื•ื ืช ื”ืชืืžืช ื”ื“ืคื•ืกื™ื ืฉื”ื•ืฆื’ื” ื‘-Java 16 ืขื ื›ืœื™ื ืœื ื™ืชื•ื— ื”ืขืจื›ื™ื ืฉืœ ืžื—ืœืงื•ืช ืจืฉื•ืžื•ืช. ืœื“ื•ื’ืžื”: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • ื‘ื ื™ื™ืช ืœื™ื ื•ืงืก ืžืกืคืงืช ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช RISC-V.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ืขื‘ื•ืจ FFM (Foreign Function & Memory) API, ื”ืžืืคืฉืจ ืœืš ืœืืจื’ืŸ ืืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืชื•ื›ื ื™ื•ืช Java ืขื ืงื•ื“ ื•ื ืชื•ื ื™ื ื—ื™ืฆื•ื ื™ื™ื ืขืœ ื™ื“ื™ ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื•ืช ืžืกืคืจื™ื•ืช ื—ื™ืฆื•ื ื™ื•ืช ื•ื’ื™ืฉื” ืœื–ื™ื›ืจื•ืŸ ืžื—ื•ืฅ ืœ-JVM.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉืจืฉื•ืจื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื, ืฉื”ื ืคืชื™ืœื™ื ืงืœื™ื ืฉืžืคืฉื˜ื™ื ืžืื•ื“ ืืช ื”ื›ืชื™ื‘ื” ื•ื”ืชื—ื–ื•ืงื” ืฉืœ ื™ื™ืฉื•ืžื™ื ืžืจื•ื‘ื™ื ืขื ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื.
  • ื”ื•ืฆืขื” ืชืฆื•ื’ื” ืžืงื“ื™ืžื” ืจื‘ื™ืขื™ืช ืฉืœ ื”-Vector API, ื”ืžืกืคืงืช ืคื•ื ืงืฆื™ื•ืช ืœื—ื™ืฉื•ื‘ื™ื ื•ืงื˜ื•ืจื™ื™ื ื”ืžื‘ื•ืฆืขื™ื ื‘ืืžืฆืขื•ืช ื”ื•ืจืื•ืช ื•ืงื˜ื•ืจื™ื•ืช ื‘ืžืขื‘ื“ื™ x86_64 ื•-AArch64 ื•ืžืืคืฉืจื•ืช ืœื”ื—ื™ืœ ืคืขื•ืœื•ืช ื‘ื•-ื–ืžื ื™ืช ืขืœ ืžืกืคืจ ืขืจื›ื™ื (SIMD). ื‘ื ื™ื’ื•ื“ ืœื™ื›ื•ืœื•ืช ื”ื ื™ืชื ื•ืช ื‘ืžื”ื“ืจ HotSpot JIT ืขื‘ื•ืจ ื•ืงื˜ื•ืจื™ื–ืฆื™ื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ืคืขื•ืœื•ืช ืกืงืœืจื™ื•ืช, ื”-API ื”ื—ื“ืฉ ืžืืคืฉืจ ืœืฉืœื•ื˜ ื‘ืฆื•ืจื” ืžืคื•ืจืฉืช ื‘-Vectorization ืขื‘ื•ืจ ืขื™ื‘ื•ื“ ื ืชื•ื ื™ื ืžืงื‘ื™ืœื™.
  • ื ื•ืกืคื” ื™ื™ืฉื•ื ื ื™ืกื™ื•ื ื™ ืฉืœื™ืฉื™ ืฉืœ ื”ืชืืžืช ื“ืคื•ืกื™ื ื‘ื‘ื™ื˜ื•ื™ื™ "ืžืชื’", ื”ืžืืคืฉืจ ืฉื™ืžื•ืฉ ื‘ืชื•ื•ื™ื•ืช "ืžืงืจื”" ืœื ื‘ืขืจื›ื™ื ืžื“ื•ื™ืงื™ื, ืืœื ื‘ื“ืคื•ืกื™ื ื’ืžื™ืฉื™ื ื”ืžื›ืกื™ื ืกื“ืจื” ืฉืœ ืขืจื›ื™ื ื‘ื‘ืช ืื—ืช, ืฉืขื‘ื•ืจื ื”ื™ื” ืฆื•ืจืš ื‘ืขื‘ืจ ื”ืฉืชืžืฉ ื‘ืฉืจืฉืจื•ืช ืžืกื•ืจื‘ืœื•ืช ืฉืœ ื‘ื™ื˜ื•ื™ื™ "ืื...ืื—ืจืช". ืื•ื‘ื™ื™ืงื˜ 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("ืžื—ืจื•ื–ืช %s", s); ื‘ืจื™ืจืช ืžื—ื“ืœ -> o.toString(); };
  • ื ื•ืกืฃ API ื ื™ืกื™ื•ื ื™ ืขื‘ื•ืจ ืžืงื‘ื™ืœื™ื•ืช ืžื•ื‘ื ื™ืช, ืืฉืจ ืžืคืฉื˜ ืืช ื”ืคื™ืชื•ื— ืฉืœ ื™ื™ืฉื•ืžื™ื ืžืจื•ื‘ื™ื ืขืœ ื™ื“ื™ ื”ืชื™ื™ื—ืกื•ืช ืœืžืกืคืจ ืžืฉื™ืžื•ืช ื”ืคื•ืขืœื•ืช ื‘ืฉืจืฉื•ืจื™ื ืฉื•ื ื™ื ื›ื‘ืœื•ืง ื™ื—ื™ื“.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”