ืืืืจ ืฉืืฉื ืืืืฉืื ืฉื ืคืืชืื, ืืืจืงื ืฉืืจืจื ืืช ืคืืืคืืจืืช Java SE 17 (Java Platform, Standard Edition 17), ืืืฉืชืืฉืช ืืคืจืืืงื ืืงืื ืืคืชืื OpenJDK ืืืืฉืื ืืืืืก. ืืืขื ืืกืจืช ืืืง ืืืชืืื ืืช ืฉืืืฆืื ืืฉืืืืฉ, Java SE 17 ืฉืืืจ ืขื ืชืืืืืช ืืืืืจ ืขื ืืืืืจืืช ืงืืืืืช ืฉื ืคืืืคืืจืืช Java - ืจืื ืคืจืืืงืื ื-Java ืฉื ืืชืื ืืขืืจ ืขืืืื ืืคืขืื ืืื ืฉืื ืื ืืืฉืจ ืื ืคืืขืืื ืชืืช ืืืจืกื ืืืืฉื. ืื ืืื ื ืืชื ืช ืืืชืงื ื ืฉื Java SE 17 (JDK, JRE ืืฉืจืช JRE) ืืืื ืืช ืขืืืจ Linux (x86_64, AArch64), Windows (x86_64) ื-macOS (x86_64, AArch64). ืืืืืฉ ืืืชืืืืกืืช ืฉื Java 17, ืฉืคืืชื ืขื ืืื ืคืจืืืงื OpenJDK, ืคืชืื ืืืืืื ืชืืช ืจืืฉืืื GPLv2 ืขื ืืจืืืื ืฉื GNU ClassPath ืืื ืืืคืฉืจ ืงืืฉืืจ ืืื ืื ืืืืฆืจืื ืืกืืจืืื.
Java SE 17 ืืกืืืืช ืืืจืกืช ืชืืืื ืืืืื ืืจืื (LTS), ืืฉืจ ืชืืฉืื ืืงืื ืขืืืื ืื ืขื 2029. ืขืืืื ืื ืขืืืจ ืืืืืจืช ืืื ื ืืืจื ืืงืืืืช ืฉื Java 16 ืืืคืกืงื. ืขื ืฃ ื-LTS ืืงืืื ืฉื Java 11 ืืืื ื ืชืื ืขื 2026. ืืืืืจืช ื-LTS ืืืื ืืชืืื ื ืช ืืกืคืืืืจ 2024. ื ืืืืจ ืืื ืฉืืื ืืืฉืืจืืจ ืฉื Java 10, ืืคืจืืืงื ืขืืจ ืืชืืืื ืคืืชืื ืืืฉ, ืื ืฉืืจืื ืขื ืืืืืจ ืงืฆืจ ืืืชืจ ืืืืืืฆืจืืช ืืืืืจืืช ืืืฉืืช. ืคืื ืงืฆืืื ืืืืช ืืืฉื ืืคืืชืืช ืืขืช ืืกื ืืฃ ืืืกืืจ ืืื ืืืชืขืืื ืื ืืืื, ืืืืื ืฉืื ืืืื ืืืื ืื ืืืื ื ืืกืชืขืคืื ืกื ืืคืื ืื ืืฆื ืฉื ื ืืื ืืืืฆื ืืืืืจืืช ืืืฉืืช.
ืชืืื ืืช ืืืฉืืช ื-Java 17 ืืืืืืช:
- ืืืฆืข ืืืฉืื ื ืืกืืื ื ืฉื ืืชืืืช ืืคืืกืื ืืืืืืื "ืืืจืจ", ืืืืคืฉืจ ืฉืืืืฉ ืื ืืขืจืืื ืืืืืงืื ืืชืืืืืช "ืืงืจื", ืืื ืืชืื ืืืช ืืืืฉืืช ืืืืกืืช ืกืืจื ืฉื ืขืจืืื ืืืช ืืืช, ืฉืขืืืจื ืืื ืฆืืจื ืืขืืจ ืืืฉืชืืฉ ืืืกืืจืื ืฉืจืฉืจืืืช ืฉื ืืืืืื "ืื...ืืืจืช". ืื ืืกืฃ, ื- "switch" ืืฉ ืืช ืืืืืืช ืืืชืืืื ืขื ืขืจืื NULL. ืืืืืืงื 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(); };
- ืชืืืื ืืฆืืื ืืืืืงืืช ืืืืฉืงืื ืืืืืื, ืฉืื ื ืืชื ืืืฉืชืืฉ ืืืืืงืืช ืืืืฉืงืื ืืืจืื ืืื ืืจืฉืช, ืืืจืืื ืื ืืขืงืืฃ ืืช ืืืืฉืื. ืืืืงืืช ืืชืืืืช ืืกืคืงืืช ืื ืืจื ืืฆืืจืชืืช ืืืชืจ ืืืืืื ืืช ืืฉืืืืฉ ื- superclass ืืืฉืจ ืืฉื ื ืืืฉื, ืืืชืืกืก ืขื ืจืืฉืื ืืคืืจืฉ ืฉื ืชืช ืืืืืงืืช ืืืืชืจืืช ืืืจืืื. ืืืืื com.example.geometry; ืืืืงื ืืืืื ืฆืืืืจืืช ืืืคืฉืจืช ืฆืืจื com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {โฆ}
- ืืืฆืขืช ืชืฆืืื ืืงืืืื ืฉื ืืื ืฉื ื-Vector API, ืืืกืคืงืช ืคืื ืงืฆืืืช ืืืืฉืืืื ืืงืืืจืืื ืืืืืฆืขืื ืืืืฆืขืืช ืืืจืืืช ืืงืืืจืืืช ืืืขืืื x86_64 ื-AArch64 ืืืืคืฉืจืืช ืืืืื ืคืขืืืืช ืื-ืืื ืืช ืขื ืืกืคืจ ืขืจืืื (SIMD). ืื ืืืื ืืืืืืืช ืื ืืชื ืืช ืืืืืจ HotSpot JIT ืขืืืจ ืืงืืืจืืืฆืื ืืืืืืืืช ืฉื ืคืขืืืืช ืกืงืืจืืืช, ื-API ืืืืฉ ืืืคืฉืจ ืืฉืืื ืืฆืืจื ืืคืืจืฉืช ื-Vectorization ืขืืืจ ืขืืืื ื ืชืื ืื ืืงืืืื.
- ื ืืกืคื ืชืฆืืื ืืงืืืื ืฉื Foreign Function & Memory API, ืืืืคืฉืจ ืืืืฉืืืื ืืงืืื ืืื ืืจืืงืฆืื ืขื ืงืื ืื ืชืื ืื ืืืืฅ ืืืื ืืจืืฆื ืฉื Java. ื-API ืืืืฉ ืืืคืฉืจ ืื ืืืชืงืฉืจ ืืืขืืืืช ืืคืื ืงืฆืืืช ืฉืืื ื JVM ืืืืฉืช ืืืืืจืื ืฉืืื ื ืื ืืื ื-JVM. ืืืืืื, ืืชื ืืืื ืืงืจืื ืืคืื ืงืฆืืืช ืืกืคืจืืืช ืืฉืืชืคืืช ืืืฆืื ืืืช ืืืืฉืช ืื ืชืื ื ืชืืืื ืืืื ืืืฉืชืืฉ ื-JNI.
- ืื ืืข ืืขืืืื ืฉื macOS ืืื ืืข ืืช Java 2D API, ืืฉืจ ืืชืืจื ืืคืขืื ืืช Swing API, ืืืชืื ืืฉืืืืฉ ื-Metal graphics API. ืคืืืคืืจืืช macOS ืืืฉืืื ืืืฉืชืืฉ ื-OpenGL ืืืจืืจืช ืืืื, ืืืคืขืืช ืชืืืืช Metal ืืืจืฉืช ืืืืจื "-Dsun.java2d.metal=true" ืืืคืืืช ืืคืขืืช macOS 10.14.x.
- ื ืืกืคื ืืฆืืื ืืคืืืคืืจืืช macOS/AArch64 (ืืืฉืื ืืคื ืืืืืกืกืื ืขื ืฉืืื Apple M1 ืืืืฉืื). ืชืืื ื ืืืืืืช ืฉื ืืืฆืืื ืืื ืชืืืื ืืื ืื ืื ืืื ืช ืืืืืจืื W^X (Write XOR Execute), ืฉืื ืื ื ืืชื ืืืฉืช ืืืคื ืืืืจืื ืื-ืืื ืืช ืืฆืืจื ืืชืืื ืืืืฆืืข. (ื ืืชื ืืืคืขืื ืงืื ืจืง ืืืืจ ืฉืืืชืืื ืืืฉืืชืช, ืืืชืืื ืืืฃ ืืืืจืื ืืคืฉืจืืช ืจืง ืืืืจ ืืฉืืชืช ืืืืฆืืข).
- ืืืจ ืืฉืืืืฉ ืืกืื ืืืงื strictfp ืืืื ืขืืืจ ืืืืืื ื ืงืืื ืฆืคื. ืืชืืืื ืืกืื ืืืงื "ืืจืืจืช ืืืืื", ืืืืื ื ืืื ืฉืืจืืจื ืฉื Java 1.2, ืืืคืกืงื, ืืืื ืืงืืืช ืืขืืืื ืขื ืืขืจืืืช ืขื ืืขืืื ืฉืืชืคืื ืืชืืืืื x87 ืืฉื ืื ืืืื (ืืืืจ ืืืคืขืช ืืืจืืืช SSE2, ืืฆืืจื ืืกืื ืืืงื ื ืืกืคืช ื ืขืื).
- ืกืืืื ืืืฉืื ืฉื ืืืฉืงืื ืืืืืืื ืืกืคืจืื ืคืกืืืื ืืงืจืืืื ืืืฉืื, ืืืืืืจืืชืืื ื ืืกืคืื ืืืืืขื ืืืฆืืจื ืืืื ืืืชืจ ืฉื ืืกืคืจืื ืืงืจืืืื. ืืืืฉืืืื ื ืืชื ืช ืืืืืื ืืช ืืืืืจ ืืืืืจืืชื ืืืคืงืช ืืกืคืจืื ืคืกืืืื ืืงืจืืืื. ืชืืืื ืืฉืืคืจืช ืืืฆืืจืช ืืจืื ืืืืืืงื ืืงืจืืืื.
- ืืืืคื ืงืคืื ืืช ืฉื ืื ืืืืงืื ืืคื ืืืืื ืฉื JDK, ืืืขื ืืืฉืงื API ืงืจืืืืื ืืืื sun.misc.Unsafe. ืื ืงืคืกืืืฆืื ืงืคืื ืืช ืืืกืืช ื ืืกืืื ืืช ืืงืื ืืืืฉื ืืืืืงืืช ืคื ืืืืืช, ืฉืืืืช ืืฉืืืช. ืืขืืจ, ื ืืชื ืืื ืืืื ืืฆื ืื ืงืคืกืืืฆืื ืงืคืื ื ืืืืฆืขืืช ืืืคืฉืจืืช "--illegal-access=permit", ืื ืืขืช ืื ืืืฆื ืืฉืืืืฉ. ืืืฉืืืื ืืืืจืฉืื ืืืฉื ืืืืืงืืช ืคื ืืืืืช, ืฉืืืืช ืืฉืืืช ืฆืจืืืื ืืืืืืจ ืืืชื ืืืคืืจืฉ ืืืืฆืขืืช ืืืคืฉืจืืช --add-opens ืื ืืชืืื ื Add-Opens ืืงืืืฅ ืืื ืืคืกื.
- ืืืืฉืืืื ื ืืชื ืช ืืืืืืช ืืืืืืจ ืืกื ื ื ืื-ืกืจืืืืืืฆืื ืฉื ื ืชืื ืื, ืฉืืืืืื ืืืืืช ืจืืืฉืื ืืืงืฉืจ ืืืืืืจื ืืื ืืืช ืืืชืืกืก ืขื ืคืขืืืืช ืื-ืกืจืืืืืืฆืื ืกืคืฆืืคืืืช. ืืืกื ื ืื ืฉืฆืืื ื ืืืื ืขื ืื ืืืืฉื ืืืืจืืืืื (ืืจืืื JVM), ืืืืืจ. ืืืกืื ืื ืจืง ืืช ืืืืฉืื ืขืฆืื, ืืื ืื ืืช ืกืคืจืืืช ืืฆื ืืฉืืืฉื ืืืฉืืฉืืช ืืืืฉืื.
- Swing ืืืกืืคื ืืช ืฉืืืช javax.swing.filechooser.FileSystemView.getSystemIcon ืืืขืื ืช ืืืืงืื ืื ืืืืืื ืืื ืืฉืคืจ ืืช ืืืฉืง ืืืฉืชืืฉ ืืืกืื High DPI.
- ื-Java.net.DatagramSocket API ืืกืคืง ืชืืืื ืืืืืืจ ืืงืืืฆืืช Multicast ืืื ืฆืืจื ื-Java.net.MulticastSocket API ื ืคืจื.
- ืืื ืืฉืืจืืช IGV (Ideal Graph Visualizer) ืฉืืคืจ, ืืืกืคืง ืืืืื ืืื ืืจืืงืืืืืช ืฉื ืืืฆืื ืงืื ืืื ืืื ืืืืืจ HotSpot VM C2 JIT.
- ื-JavaDoc, ืืื ืืืืื ืืืืืจ javac, ืืืฉืจ ืืืฆืืช ืฉืืืื, ืืฆืืื ืืขืช ืืกืคืจ ืืฉืืจื ืืืขืืืชืืช ืืงืืืฅ ืืืงืืจ ืืืืงืื ืืฉืืืื.
- ืืืกืืฃ ืืช ืืืืคืืื native.encoding, ืืืฉืงืฃ ืืช ืฉื ืงืืืื ืืชืืืื ืฉื ืืืขืจืืช (UTF-8, koi8-r, cp1251 ืืื').
- ืืืืฉืง java.time.InstantSource ื ืืกืฃ, ืืืืคืฉืจ ืื ืืคืืืฆืื ืืืื ืืื ืืชืืืืกืืช ืืืืืจ ืืื.
- ืืืกืฃ java.util.HexFormat API ืืืืจื ืืืืฆืื ืืงืกืืฆืืืื ืืืืืคื.
- ืืงืืืคืืืืจ ื ืืกืฃ ืืฆื ืืืจ ืฉืืืจ, ืืฉืจ ืืฉืืืช ืคืขืืืืช ืืืืื ืงืื ืืช, ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืขืช โโืืืฆืืข ืืืื ื ืืืฆืืขืื.
- ื ืืกืคื ืืคืฉืจืืช "-Xlog:async" ื-Runtime ืืื ืืืงืืื ืืืื ืื ืืืฆื ืืกืื ืืจืื ื.
- ืืขืช ืืฆืืจืช ืืืืืจืื ืืืืืืืื, TLS 1.3 ืืืคืขื ืืืจืืจืช ืืืื (ืงืืื ืืื ื ืขืฉื ืฉืืืืฉ ื-TLS 1.2).
- ื-API ืฉื Applet ืฉืืืืจื ืืขืืจ ืืืืืฉื (java.applet.Applet*, javax.swing.JApplet), ืฉืฉืืืฉ ืืืคืขืืช ืืืฉืืื Java ืืืคืืคื, ืืืขืืจ ืืงืืืืจืื ืืืืืขืืช ืืืกืจื (ืืืืื ืจืืืื ืืืืช ืืืืจ ืกืืื ืืชืืืื ืขืืืจ ืชืืกืฃ Java ืืืคืืคื ืื).
- Security Manager, ืฉืืืจ ืืืื ืืืื ืืช ืืจืืืื ืืืืช ืฉืื ืืืชืืจืจ ืืื ืฉืื ื ืชืืข ืืืืจ ืกืืื ืืชืืืื ืืชืืกืฃ ืืืคืืคื, ืืืขืืจ ืืงืืืืจืืืช ืืื ืืืชืืื ื ืื ืืืกืจื.
- ืืืกืจ ืื ืื ืื ืืืคืขืื ืฉื RMI, ืฉืืื ืืืืฉื, ื ืืืง ืืงืืืืจืื ืฉื ืืืคืฆืื ื-Java 8 ืืืืขื ืืฃ ืคืขื ืื ื ืขืฉื ืื ืฉืืืืฉ ืืคืจืงืืืงื ืืืืืจื ืืช.
- ืืืืจ ื ืืกืืื ื ืืชืืื ื-JIT (Just-in-Time) ืขืืืจ ืงืืืคืืืฆืื ืืื ืืืช ืฉื ืงืื Java ืขืืืจ HotSpot JVM, ืืื ืื ืืืคื ืืืืืืจ (AOT, ืืจืืฉ) ืฉื ืืืืงืืช ืืงืื ืืืื ื ืืคื ื ืืคืขืืช ืืืืื ื ืืืืจืืืืืืช , ืืืกืจ ืื-SDK. ืืืืืจ ื ืืชื ืื'ืืืื ืืืชืืกืก ืขื ืืขืืืื ืฉื ืคืจืืืงื Graal. ืืฆืืื ืื ืชืืืืงืช ืืืืืจ ืืืจืฉืช ืขืืืื ืจืื, ืืืจ ืฉืืื ื ืืืฆืืง ืืืฉืจ ืืื ืืืงืืฉ ืืืืคืชืืื.
ืืงืืจ: OpenNet.ru