ืืืืจ ืฉืืฉื ืืืืฉืื ืฉื ืคืืชืื, ืืืจืงื ืฉืืจืจื ืืช ืคืืืคืืจืืช 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