ืืืืจ ืฉืืฉื ืืืืฉืื ืฉื ืคืืชืื, ืืืจืงื ืืืฆืืื ืืช Java SE 16 (Java Platform, Standard Edition 16), ืืืฉืชืืฉืช ืืคืจืืืงื OpenJDK ืืงืื ืคืชืื ืืืืฉืื ืืืืืก. Java SE 16 ืฉืืืจ ืขื ืชืืืืืช ืืืืืจ ืขื ืืืืืจืืช ืงืืืืืช ืฉื ืคืืืคืืจืืช Java; ืื ืคืจืืืงืื Java ืฉื ืืชืื ืืขืืจ ืืคืขืื ืืื ืฉืื ืืืื ืืืฉืจ ืืืฉืงื ืชืืช ืืืจืกื ืืืืฉื. ืืจืกืืืช ืืืื ืืช ืืืชืงื ื ืฉื Java SE 16 (JDK, JRE ื-Server JRE) ืืืื ืืช ืขืืืจ Linux (x86_64, AArch64), Windows ื-macOS. ืืืืืฉ ืืืชืืืืกืืช ืฉื Java 16, ืฉืคืืชื ืขื ืืื ืคืจืืืงื OpenJDK, ืืื ืงืื ืคืชืื ืืืืืืื ืชืืช ืจืืฉืืื GPLv2, ืขื ืืจืืืื ืฉื GNU ClassPath ืืืืคืฉืจืื ืงืืฉืืจ ืืื ืื ืขื ืืืฆืจืื ืืกืืจืืื.
Java SE 16 ืืกืืื ืืืจืกืช ืชืืืื ืืืืืช ืืชืืฉืื ืืงืื ืขืืืื ืื ืขื ืืืืืืจื ืืืื. ืขื ืฃ ืืชืืืื ืืืืื ืืจืื (LTS) ืฆืจืื ืืืืืช Java SE 11, ืฉืืืฉืื ืืงืื ืขืืืื ืื ืขื 2026. ืืืืืจืช ื-LTS ืืืื ืืชืืื ื ืช ืืกืคืืืืจ 2021. ื ืืืืจ ืืื ืฉืืื ืืืฉืืจืืจ ืฉื Java 10, ืืคืจืืืงื ืขืืจ ืืชืืืื ืคืืชืื ืืืฉ, ืื ืฉืืจืื ืขื ืืืืืจ ืงืฆืจ ืืืชืจ ืืืืืืฆืจืืช ืืืืืจืืช ืืืฉืืช. ืคืื ืงืฆืืื ืืืืช ืืืฉื ืืคืืชืืช ืืขืช ืืกื ืืฃ ืืืกืืจ ืืื ืืืชืขืืื ืื ืืืื, ืืืืื ืฉืื ืืืื ืืืื ืื ืืืื ื ืืกืชืขืคืื ืกื ืืคืื ืื ืืฆื ืฉื ื ืืื ืืืืฆื ืืืืืจืืช ืืืฉืืช.
ืืงืจืืช ืืืืืืจื ืืืืฉื, ืืคืืชืื ืขืืจ ืืืขืจืืช ืืงืจืช ืืจืกืืืช Mercurial ื-Git ืืืคืืืคืืจืืช ืืคืืชืื ืืฉืืชืืคืืช GitHub. ืืืืืจื ืฆืคืืื ืืฉืคืจ ืืช ืืืืฆืืขืื ืฉื ืคืขืืืืช ืืืืืจ, ืืืืืืจ ืืช ืืขืืืืช ืืืืกืื, ืืกืคืง ืืืฉื ืืฉืื ืืืื ืืืืจื ืืืืกืืืจืื ืฉื ืืคืจืืืงื, ืืฉืคืจ ืืช ืืชืืืื ืืกืงืืจืช ืงืื ืืืืคืฉืจ ืืืืฉืงื API ืืืคืื ืืจืืืืช ืขืืืื ืืืืืืืืืืช. ืื ืืกืฃ, ืืฉืืืืฉ ื-Git ืื-GitHub ืืืคื ืืช ืืคืจืืืงื ืืืืจืงืืืื ืืืชืจ ืืืชืืืืื ืืืืคืชืืื ืืืืจืืืื ื-Git.
ืชืืื ืืช ืืืฉืืช ื-Java 16 ืืืืืืช:
- ื ืืกืฃ ืืืืื ื ืืกืืื ื jdk.incubator.vector ืขื ืืืฉืื ืฉื ื-Vector API, ืืืกืคืง ืคืื ืงืฆืืืช ืืืืฉืืืื ืืงืืืจืืื ืืืืืฆืขืื ืืืืฆืขืืช ืืืจืืืช ืืงืืืจืืืช ืืืขืืื x86_64 ื-AArch64 ืืืืคืฉืจืื ืืืืื ืคืขืืืืช ืื-ืืื ืืช ืขื ืืกืคืจ ืขืจืืื (SIMD). ืื ืืืื ืืืืืืืช ืื ืืชื ืืช ืืืืืจ HotSpot JIT ืขืืืจ ืืงืืืจืืืฆืื ืืืืืืืืช ืฉื ืคืขืืืืช ืกืงืืจืืืช, ื-API ืืืืฉ ืืืคืฉืจ ืื ืืฉืืื ืืืืคื ืืคืืจืฉ ืขื ืืงืืืจืืืฆืื ืขืืืจ ืขืืืื ื ืชืื ืื ืืงืืืื.
- ืงืื JDK ื-VM HotSpot ืฉื ืืชื ื-C++ ืืืชืจ ืืืฉืชืืฉ ืืชืืื ืืช ืฉืืืฆืื ืืืคืจื C++14. ืืขืืจ ืืืชืจื ืชืงื ื C++98/03.
- ื-ZGC (Z Garbage Collector), ืืคืืขื ืืืฆื ืคืกืืื ืืืืืขืจ ืขืืืืืื ืขืงื ืืืกืืฃ ืืฉืคื ืืื ืืืคืฉืจ, ืืืกืืคื ืืช ืืืืืืช ืืขืื ืขืจืืืืช ืืืืื ืืืงืืื ืืืื ืืืฉืืืช ืฉืจืฉืืจื ืืืฉืืืื. ื-ZGC ืืฉ ืืขืช ืจืง ืขืืืื ืฉืืืจืฉืช ืืฉืขืื, ืฉืืฉ ืื ืขืืืืืื ืงืืืขืื, ืืืจื ืืื ืื ืขืืืื ืขื ืืื ืืืืช ืืืงืจื-ืฉื ืืืช.
- ื ืืกืคื ืชืืืื ืขืืืจ ืฉืงืขื ืืื ืืงืก (AF_UNIX) ืืืืืงืืช SocketChannel, ServerSocketChannel ื-java.nio.channels.
- ืคืืจื ืืืืืข ืขืืืจ ืืคืฆืช ืืื ืืงืก Alpine ืขื ืกืคืจืืืช C ืืกืื ืืจืืืช musl, ืืคืืคืืืจืืช ืืกืืืืืช ืืืืืืืช, ืืืงืจื-ืฉืืจืืชืื, ืขื ื ืืืขืจืืืช ืืฉืืืฆืืช. ืืืฆืืื ืืืืฆืขืช ืืกืืืืืช ืืืื ืืืคืฉืจืช ืื ืืืคืขืื ืชืืื ืืืช Java ืืื ืืืฉืืืื ืจืืืืื. ืื ืืกืฃ, ืืืืฆืขืืช jlink, ื ืืชื ืืืกืืจ ืืช ืื ืืืืืืืื ืฉืืื ื ืืฉืืืืฉ ืืืืฆืืจ ืกืืืื ืืื ืืืืืช ืืกืคืืงื ืืืคืขืืช ืืืคืืืงืฆืื, ืืืืคืฉืจืช ืืืฆืืจ ืชืืื ืืช ืงืืืคืงืืืืช ืกืคืฆืืคืืืช ืืืคืืืงืฆืื.
- ืื ืื ืื Elastic Metaspace ืืืฉื, ืืืืืขื ืืช ืคืขืืืืช ืืืงืฆืื ืืืืืจื ืฉื ืืืืจืื ืฉื ืืืฉ ืขื ืืื ืืื-ื ืชืื ืื ืฉื ืืืืงืืช (metaspace) ื-JVM HotSpot. ืืฉืืืืฉ ื- Elastic Metaspace ืืคืืืช ืืช ืคืืฆืื ืืืืืจืื, ืืคืืืช ืืช ืชืงืืจื ืฉื ืืืขืื ืืืืืงื, ืืื ืืฉืคืืข ืืืืื ืขื ืืืืฆืืขืื ืฉื ืืืฉืืื ืฉืจืช ืืจืืื ืืืื ืขืงื ืืืืจื ืืืืจื ืืืชืจ ืฉื ืืืืจืื ืฉื ืืืฉ ืขื ืืื ืืื-ื ืชืื ืื ืฉื ืืืืงืืช ืื ืืฉืืืืฉ ืืืขืจืืช ืืืคืขืื. ืืื ืืืืืจ ืืช ืืฆื ืฉืืจืืจ ืืืืืจืื ืืืืจ ืคืจืืงืช ืืืืงืืช, ืืืฆืขืช ืืืคืฉืจืืช "-XX:MetaspaceReclaimPolicy=(balanced|aggressive|none)".
- ื ืืกืคื ืืฆืืืช JDK ืขืืืจ ืืขืจืืืช Windows ืืคืืขืืืช ืขื ืืืืจื ืขื ืืขืืืื ืืืืืกืกืื ืขื ืืจืืืืงืืืจืช AArch64.
- ืืืฆืขื ืชืฆืืื ืืงืืืื ืฉืืืฉืืช ืฉื ื-API ืฉื Foreign-Memory Access, ืืืืคืฉืจืช ืืืืฉืืื Java ืืืฉืช ืืฆืืจื ืืืืืืืช ืืืขืืื ืืืืืจื ืืืืจืื ืืืืฅ ืืขืจืืช Java ืขื ืืื ืื ืืคืืืฆืื ืฉื ืืืคืฉืืืช ืืืืฉืืช ืฉื MemorySegment, MemoryAddress ื-MemoryLayout.
- ืืืืืข ืืืฉืง API ื ืืกืืื ื ืฉื Foreign Linker, ืืืกืคืง ืืืฉื ืื'ืืืื ืืงืื ืืงืืจื. ืืื ืขื ื-Foreign-Memory API, ืืืฉืง ืืชืื ืืช ืืืืฉ ืืงื ืืืจืื ืขื ืืฆืืจืช ืขืืืคืืช ืขื ืคื ื ืกืคืจืืืช ืืฉืืชืคืืช ืงืื ืื ืฆืืื ืืืืช.
- ืืืกืคื ืืช ืืื ืืฉืืจืืช jpackage, ืืืืคืฉืจ ืื ืืืฆืืจ ืืืืืืช ืขืืืจ ืืืฉืืื Java ืขืฆืืืืื. ืืื ืืฉืืจืืช ืืืืกืก ืขื javapackager ื-JavaFX ืืืืคืฉืจ ืืืฆืืจ ืืืืืืช ืืคืืจืืืื ืืงืืจืืื ืืคืืืคืืจืืืช ืฉืื ืืช (msi ื-exe ืขืืืจ Windows, pkg ื-dmg ืขืืืจ macOS, deb ื-rpm ืขืืืจ Linux). ืืืืืืืช ืืืืืืช ืืช ืื ืืชืืืช ืื ืืจืฉืช.
- ืื ืงืคืกืืืฆืื ืงืคืื ืืช ืฉื ืื ืืืืงืื ืืคื ืืืืื ืฉื JDK ืืืคืขืืช ืืืจืืจืช ืืืื, ืืืขื ืืืฉืงื API ืงืจืืืืื ืืืื sun.misc.Unsafe. ืืขืจื ืฉื ืืืคืฉืจืืช "--illegal-access" ืืืืืจ ืืขืช ื-"deny" ืืืงืื "permit" ืืืจืืจืช ืืืื, ืื ืฉืืืกืื ื ืืกืืื ืืช ืืงืื ืืืืฉื ืืจืื ืืืืืงืืช, ืืฉืืืืช ืืืฉืืืช ืืคื ืืืืื. ืืื ืืขืงืืฃ ืืช ืืืืืื, ืืฉืชืืฉ ืืืคืฉืจืืช "-illegal-access=permit".
- ืืืืฉืื ืฉื ืืชืืืช ืืคืืกืื ืืืืคืจืืืจ "instanceof" ืืืฆื, ืื ืฉืืืคืฉืจ ืื ืืืืืืจ ืืื ืืฉืชื ื ืืงืืื ืฉืืชืืืืก ืืขืจื ืืืกืืื. ืืืืืื, ืืชื ืืืื ืืื ืืืชืื "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" ืืืื ืืืืืืจ ืืืคืืจืฉ "String s = (String) obj". Was: if (obj instanceof Group) { Group group = (Group) obj; var entries = group.getEntries(); } ืขืืฉืื ืืชื ืืืื ืืขืฉืืช ืืื ืืืืืืจ "ืงืืืฆืช ืงืืืฆื = (ืงืืืฆื) obj": if (instance obj ืฉื ืงืืืฆืช ืงืืืฆื) { var entries = group.getEntries(); }
- ืืืืฉืื ืฉื ืืืืช ืืืคืชื "record" ืืืฆื, ืืืกืคืง ืฆืืจื ืงืืืคืงืืืช ืืืืืจืืช ืืืืงืืช ืืืืื ืืช ืืฆืืจื ืืืืืืจ ืืืคืืจืฉ ืฉืืืืช ืฉืื ืืช ืืจืื ื ืืืื ืืืื equals(), hashCode() ื-toString() ืืืงืจืื ืืื ืื ืชืื ืื ืืืืืกื ืื ืจืง ืืฉืืืช ืืืชื ืื ืื ืืฉืชื ื. ืืืฉืจ ืืืืงื ืืฉืชืืฉืช ืืืืืขืืช ืกืื ืืจืืืืช ืฉื ืฉืืืืช equals(), hashCode() ื-toString() ืืื ืืืืื ืืืกืชืืจ ืืื ืืืืืจื ืืืคืืจืฉืช ืฉืืื: ืจืฉืืื ืฆืืืืจืืช BankTransaction(LocalDate date, double amount, String description) {}
ืืืฆืืจื ืืื ืชืืกืืฃ ืืืืืืืืช ืืืืืฉืื ืฉื ืืืชืืืืช equals(), hashCode() ื-toString() ืื ืืกืฃ ืืฉืืืืช ืืื ืื ืื-getter.
- ืืืืื ืฉื ืืื ืืืฆืขืช ืืืืืงืืช ืืืืฉืงืื ืืชืืืื ืฉืื ื ืืชื ืืืฉืชืืฉ ืืืืืงืืช ืืืืฉืงืื ืืืจืื ืืื ืืจืฉืช, ืืืจืืื ืื ืืขืงืืฃ ืืืฉืืืื. ืืืืงืืช ืืชืืืืช ืืกืคืงืืช ืื ืืจื ืืฆืืจืชืืช ืืืชืจ ืืืืืื ืืช ืืฉืืืืฉ ื- superclass ืืืฉืจ ืืฉื ื ืืืฉื, ืืืชืืกืก ืขื ืจืืฉืื ืืคืืจืฉ ืฉื ืชืช ืืืืืงืืช ืืืืชืจืืช ืืืจืืื. ืืืืื com.example.geometry; ืืืืงื ืืืืื ืฆืืืืจืืช ืืืคืฉืจืช ืฆืืจื com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {โฆ}
ืืงืืจ: OpenNet.ru