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

ืœืื—ืจ ืฉื™ืฉื” ื—ื•ื“ืฉื™ื ืฉืœ ืคื™ืชื•ื—, ืื•ืจืงืœ ืฉื—ืจืจื” ืืช ืคืœื˜ืคื•ืจืžืช 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

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