ืืืืจ ืฉืืฉื ืืืืฉืื ืฉื ืคืืชืื, ืืืจืงื ืฉืืจืจื ืืช ืคืืืคืืจืืช Java SE 18 (Java Platform, Standard Edition 18), ืืืฉืชืืฉืช ืืคืจืืืงื ืืงืื ืืคืชืื OpenJDK ืืืืฉืื ืืืืืก. ืืืขื ืืกืจืช ืืืง ืืืชืืื ืืช ืฉืืืฆืื ืืฉืืืืฉ, Java SE 18 ืฉืืืจ ืขื ืชืืืืืช ืืืืืจ ืขื ืืืืืจืืช ืงืืืืืช ืฉื ืคืืืคืืจืืช Java - ืจืื ืคืจืืืงืื ื-Java ืฉื ืืชืื ืืขืืจ ืขืืืื ืืคืขืื ืืื ืฉืื ืื ืืืฉืจ ืื ืคืืขืืื ืชืืช ืืืจืกื ืืืืฉื. ืื ืืื ื ืืชื ืช ืืืชืงื ื ืฉื Java SE 18 (JDK, JRE ืืฉืจืช JRE) ืืืื ืืช ืขืืืจ Linux (x86_64, AArch64), Windows (x86_64) ื-macOS (x86_64, AArch64). ืืืืืฉ ืืืชืืืืกืืช ืฉื Java 18, ืฉืคืืชื ืขื ืืื ืคืจืืืงื OpenJDK, ืคืชืื ืืืืืื ืชืืช ืจืืฉืืื GPLv2 ืขื ืืจืืืื ืฉื GNU ClassPath ืืื ืืืคืฉืจ ืงืืฉืืจ ืืื ืื ืืืืฆืจืื ืืกืืจืืื.
Java SE 18 ืืกืืืืช ืืืจืกืช ืชืืืื ืจืืืื, ืขื ืขืืืื ืื ืฉืืฉืืืจืจื ืืคื ื ืืืืืืจื ืืืื. ืขื ืฃ ืืชืืืื ืืืืื ืืจืื (LTS) ืฆืจืื ืืืืืช Java SE 17, ืฉืืงืื ืขืืืื ืื ืขื 2029. ื ืืืืจ ืื ืืื ืืืฉืืจืืจ ืฉื Java 10, ืืคืจืืืงื ืขืืจ ืืชืืืื ืคืืชืื ืืืฉ, ืืฉืจ ืืจืื ืขื ืืืืืจ ืงืฆืจ ืืืชืจ ืืืืืืฆืจืืช ืืืืืจืืช ืืืฉืืช. ืคืื ืงืฆืืื ืืืืช ืืืฉื ืืคืืชืืช ืืขืช ืืกื ืืฃ ืืืกืืจ ืืื ืืืชืขืืื ืื ืืืื, ืืืฉืื ืฉืื ืืืื ืฉืืืจ ืืืฉืืื ืืืื ื ืืกืชืขืคืื ืกื ืืคืื ืื ืืฆื ืฉื ื ืืื ืืืืฆื ืืืืืจืืช ืืืฉืืช.
ืชืืื ืืช ืืืฉืืช ื-Java 18 ืืืืืืช:
- ืงืืืื ืืจืืจืช ืืืืื ืืื UTF-8. ืืืฉืงื API ืฉื Java ืืืขืืืื ื ืชืื ื ืืงืกื ืขื ืกืื ืงืืืื ืชืืืื ืืฉืชืืฉื ืืขืช ื-UTF-8 ืืืจืืจืช ืืืื ืืื ืืคืืืคืืจืืืช, ืืื ืงืฉืจ ืืืืืจืืช ืืืขืจืืช ืืืืืจืืช ืืืงืื. ืืื ืืืืืจ ืืืชื ืืืืช ืืืฉื ื, โโืฉืื ืืงืืืื ื ืืืจ ืขื ืกืื ืืืงืื ืฉื ืืืขืจืืช, ืืชื ืืืื ืืืฉืชืืฉ ืืืคืฉืจืืช "-Dfile.encoding=COMPAT".
- ืืืืืื ืืืืืช ืืช ืืืืืช com.sun.net.httpserver, ืืืืืืช ืืช ืชืืื ืืช ืืฉืืจืืช jwebserver ืืืช ืืกืคืจืืื API ืขื ืืืืขื ืฉื ืฉืจืช http ืคืฉืื ืืืืฉืช ืชืืื ืกืืื (ืืื ืชืืืื ืืืืคืืื ืืืืื CGI ื-servlet). ืฉืจืช ื-HTTP ืืืืื ื ืืื ื ืืืชืื ืืขืืืกื ืขืืืื ืืืื ื ืชืืื ืืืงืจืช ืืืฉื ืืืืืืช, ืฉืื ืืื ืืืืขื ืืขืืงืจ ืืฉืืืืฉ ืืชืืืื ืืคืืชืื ืขืืืจ ืคืจืืืงืืื ืฉื ืืฆืืจืช ืื ืืืคืืก, ืืืชืืจ ืืืืื ืืืืืงืืช.
- JavaDoc ืืกืคืง ืชืืืื ืืชื "@snippet" ืืื ืืืืืืข ืืืืืืืช ืขืืืื ืืงืืขื ืงืื ืืชืืขืื API, ืฉืื ืืชื ืืืื ืืืฉืชืืฉ ืืืื ืืืืืช, ืืืืฉืช ืชืืืืจ ืืฉืืืื IDE.
- ืืืืฉืื ืฉื java.lang.reflect API (Core Reflection), ืฉื ืืขื ืืืฉืื ืืืืข ืขื ืฉืืืืช, ืฉืืืช ืืื ื ืืืืงืืช, ืืื ืื ืืืฉื ืืืื ื ืืคื ืืื ืฉื ืืืืงืืช, ืขืืฆื ืืืืฉ. ื-API ืฉื java.lang.reflect ืขืฆืื ื ืฉืืจ ืืื ืฉืื ืื, ืื ืืขืช ืืืืฉื ืืืืฆืขืืช ื ืงืืืืช ืืืืื ืฉื ืืฉืืื ืืืกืืคืงืืช ืขื ืืื ืืืืื java.lang.invoke, ืืืงืื ืืืฉืชืืฉ ืืืืืืื bytecode. ืืฉืื ืื ืืคืฉืจ ืื ื ืืืื ืืช ืืืืืขืืช ืฉื java.lang.reflect ื-java.lang.invoke, ืืืคืฉื ืืช ืืชืืืืงื ืฉืืื.
- ืืืฆืขื ืชืฆืืื ืืงืืืื ืฉืืืฉืืช ืฉื ื-Vector API, ืืืกืคืงืช ืคืื ืงืฆืืืช ืืืืฉืืืื ืืงืืืจืืื ืืืืืฆืขืื ืืืืฆืขืืช ืืืจืืืช ืืงืืืจืืืช ืืืขืืื x86_64 ื-AArch64 ืืืืคืฉืจืืช ืืืืื ืคืขืืืืช ืื-ืืื ืืช ืขื ืืกืคืจ ืขืจืืื (SIMD). ืื ืืืื ืืืืืืืช ืื ืืชื ืืช ืืืืืจ HotSpot JIT ืขืืืจ ืืงืืืจืืืฆืื ืืืืืืืืช ืฉื ืคืขืืืืช ืกืงืืจืืืช, ื-API ืืืืฉ ืืืคืฉืจ ืืฉืืื ืืฆืืจื ืืคืืจืฉืช ื-Vectorization ืขืืืจ ืขืืืื ื ืชืื ืื ืืงืืืื.
- ืืชืืืกืฃ ืืืฉืง SPI (ืืืฉืง ืกืคืง ืฉืืจืืช) ืืคืชืจืื ืฉืืืช ืืืจืืื ืืืชืืืืช IP, ืืืืคืฉืจ ืื ืืืฉืชืืฉ ืืคืืชืจืื ืืืืคืืื ื-java.net.InetAddress ืฉืืื ื ืงืฉืืจืื ืืืืคืืื ืืืืฆืขืื ืขื ืืื ืืขืจืืช ืืืคืขืื.
- ืชืฆืืื ืืงืืืื ืฉื ืืื ืฉื Foreign Function & Memory API ืืกืืคืงืช, ืืืืคืฉืจืช ืืืืฉืืืื ืืงืืื ืืื ืืจืืงืฆืื ืขื ืงืื ืื ืชืื ืื ืืืืฅ ืืืื ืืจืืฆื ืฉื Java. ื-API ืืืืฉ ืืืคืฉืจ ืื ืืืชืงืฉืจ ืืืขืืืืช ืืคืื ืงืฆืืืช ืฉืืื ื JVM ืืืืฉืช ืืืืืจืื ืฉืืื ื ืื ืืื ื-JVM. ืืืืืื, ืืชื ืืืื ืืงืจืื ืืคืื ืงืฆืืืช ืืกืคืจืืืช ืืฉืืชืคืืช ืืืฆืื ืืืช ืืืืฉืช ืื ืชืื ื ืชืืืื ืืืื ืืืฉืชืืฉ ื-JNI.
- ื ืืกืคื ืืืฉืื ื ืืกืืื ื ืฉื ื ืฉื ืืชืืืช ืืคืืกืื ืืืืืืื "ืืชื", ืืืืคืฉืจ ืฉืืืืฉ ืืืคืืกืื ืืืืฉืื ืืชืืืืืช "ืืงืจื" ืืื ืืขืจืืื ืืืืืงืื, ืืืืกืื ืกืืจื ืฉื ืขืจืืื ืืืช ืืืช, ืฉืขืืืจื ืืื ืฆืืจื ืืขืืจ ืืืฉืชืืฉ ืฉืจืฉืจืืืช ืืกืืจืืืืช ืฉื ืืืืืื "ืื...ืืืจืช". ืืืืืืงื 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(); };
- ืื ืื ืื ืืืืจ ืืืฉืืืืช ืืืฉืืืืืช ืืืื ืืืื Object.finalize(), Enum.finalize(), Runtime.runFinalization() ื- System.runFinalization() ืืืฆืื ืืฉืืืืฉ ืืื ืืืฉืืชื ืืืืืืจื ืขืชืืืืช.
- ืืกืคื ื ืืืฉืคื ZGC (Z Garbage Collector), SerialGC ื-ParallelGC ืชืืืืื ืืื ืืขืช ืืคืืืืช ืฉืืจืืช.
ืืงืืจ: OpenNet.ru