ááźáąáŹááşáááźáŹ ááŽáá˝ááşááźáŽá¸ááąáŹááş Oracle áááş Java SE 27 (Java Platform, Standard Edition 27) ááᯠááŻááşááźááşáá˛áˇááźáŽá¸á áááşá¸áááş open source OpenJDK áááąáŹááťááşááᯠáááşá¸á reference implementation áĄááźá áş áĄááŻáśá¸ááźáŻáááşá áĄááťááŻáˇááąáŹ áĄááŻáśá¸ááááşááąáŹáˇááąáŹ feature ááťáŹá¸ááᯠáááşáážáŹá¸ááźááşá¸áážáá˝á˛á Java SE 27 áááş Java platform á ááááşááŻááşááąáážáŻááťáŹá¸áážááˇáş backward compatibility ááᯠááááşá¸ááááşá¸ááŹá¸áááş - ááááşáááąá¸ááŹá¸áá˛áˇááąáŹ Java áááąáŹááťááşáĄááťáŹá¸á áŻáááş ááŹá¸áážááşá¸áĄáá áşáĄáąáŹááşáá˝ááş ááŻááşááąáŹááşááąáŹáĄá፠áááźáąáŹááşá¸áá˛áᲠááŻááşááąáŹááşáááşááźá áşáááşá Java SE 27 (JDKá JRE áážááˇáş Server JRE) á install ááŻááşáááş áĄáááˇáşááźá áşááąáŹ build ááťáŹá¸ááᯠááźááşáááşááŹá¸áááşá Linux (x86_64á AArch64)á Windows (x86_64) áážááˇáş macOS (x86_64, AArch64). OpenJDK áááąáŹááťááşááž ááŽáá˝ááşááŹá¸ááąáŹ Java SE 27 reference implementation áááş GNU ClassPath Exception ááŤáážáááąáŹ GPLv2 áááŻááşá ááşáĄáąáŹááşáá˝ááş áĄááźááˇáşáĄá open source ááźá áşááźáŽá¸ á áŽá¸áá˝áŹá¸ááźá áşááŻááşááŻááşááťáŹá¸áážááˇáş dynamic linking ááŻááşáá˝ááˇáşááźáŻáááşá
Java SE 27 ááᯠááŻáśáážááşááśáˇáááŻá¸áážáŻááŻááşááąáážáŻáĄááźá áş áĄááťááŻá¸áĄá áŹá¸áá˝á˛ááźáŹá¸ááŹá¸ááźáŽá¸ ááąáŹááşááŻááşááąáážáŻáĄáá áĄááşááááşááťáŹá¸ááᯠááŻááşááźááşááąá¸ááŤáááşá ááąáážááşááśáˇáááŻá¸áážáŻ (LTS) ááŹááá˝á˛áážáŹ Java SE 25á Java SE 21 áááŻáˇáááŻááş Java SE 17 ááźá áşáááˇáşááźáŽá¸ áĄááşááááşááťáŹá¸ááᯠááááá áááá áážááˇáş áááá áĄáá áĄááŽá¸ááŽá¸ááŻááşááźááşááąá¸áááˇáşáááş (ááąááŻááťáĄáŹá¸ááźááˇáş ááááá áááá áážááˇáş áááá á ááşáááşááŹááĄáá ááážááááŻááşááŤáááş)á Java SE 8 LTS ááŹááá˝á˛áĄáá˝ááş áááŻá¸ááťá˛áˇááśáˇáááŻá¸áážáŻáááş áááá áĄáááážááˇáş Java SE 11 áĄáá˝ááş áááá áĄáá áááşáááşáážáááąáááşááźá áşáááşá
Java SE 27 (1, 2, 3, 4) áážáŹ ááźáąáŹááşá¸áá˛áážáŻáá˝áą ááŤáááşááŤáááş-
- áá°áááşá¸áĄáŹá¸ááźááˇáşá áááşáááşá¸ááťááşáĄáŹá¸ááŻáśá¸áá˝ááş ááááşá server á áá áşááťáŹá¸áĄáá˝ááş áĄááŻáśá¸ááźáŻáá˛áˇááąáŹ G1 (Garbage-First) garbage collector ááᯠáĄááŻáśá¸ááźáŻááŤáááşá G1 ááᯠmemory capacities ááźááˇáşááŹá¸ááąáŹ multiprocessor á áá áşááťáŹá¸áá˝ááş áĄááŻáśá¸ááźáŻáááşáážááˇáş áááˇáşáážááşá¸áááŻááşááąáŹ latency áážááˇáş throughput ááźááˇáşááŹá¸ááźááşá¸ááᯠáááşááťááşááŽá áąáááş áĄááąáŹááşá¸ááŻáśá¸ááźá áşáĄáąáŹááş ááźáŻááŻááşááŹá¸áááşá áááşáááşááąá ááşáĄáá˝ááşá¸ G1 áááş memory ááᯠááąááááşááťáŹá¸á á˝áŹáĄááźá áş áááŻááşá¸ááźáŹá¸ááźáŽá¸ áĄááŻáśá¸áááźáŻááąáŹ object áááŻááťáŹá¸ááźáŽá¸ áááşááąáŹááşááźááˇáşáážáŻáážáŻáááşá¸ááąáŹ data ááťáŹá¸áážáááąáŹ ááąáááťáŹá¸ááᯠáŚá¸á áŹá¸ááąá¸áááşá
- HotSpot JVM áááş default áĄááąááźááˇáş compact object headers ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááşá 64-bit á áá áşááťáŹá¸áá˝ááş header áĄáá˝ááşáĄá áŹá¸ááᯠ96 bits ááž 64 bits áááŻáˇ ááťážáąáŹáˇááťááŹá¸ááźáŽá¸ memory ááŻáśá¸á á˝á˛áážáŻááᯠááťážáąáŹáˇááťááąá¸ááźáŽá¸ processor cache ááᯠdata áááááááŻááşááźáąááᯠáááŻá¸á áąáááşá SPECjbb2015 benchmarks áá˝ááş memory ááŻáśá¸á á˝á˛áážáŻ 22% ááťáąáŹáˇááťááźáŽá¸ CPU load 8% ááťáąáŹáˇááťáᏠgarbage collection operations áĄááąáĄáá˝ááş 15% ááťáąáŹáˇááťáá˝áŹá¸áááşá JSON parser áĄáá˝ááş test run time ááťáŹá¸ááᯠ10% ááťážáąáŹáˇááťááŹá¸áááşá
- TLS 1.3 áĄááąáŹááşáĄáááşááąáŹáşáážáŻáááş quantum-resistant ML-KEM (CRYSTALS-Kyber) algorithm áážááˇáş classical ECDHE elliptic curve algorithms áááŻáˇááᯠááąáŤááşá¸á ááşááŹá¸ááąáŹ hybrid key agreement schemes ááťáŹá¸áĄáá˝ááş support áááşáááˇáşáááş- X25519MLKEM768 (ECDHE with the X25519 curve + ML-KEM-768)á SecP256r1MLKEM76 (ECDHE with the secp256r1 curve + ML-KEM-768) áážááˇáş SecP384r1MLKEM1024 (ECDHE with the secp384r1 curve + ML-KEM-1024)á javax.net API áá˝ááşáSSL á¤ááŻáśá áśááťáŹá¸ááᯠáá°áááşá¸áĄáŹá¸ááźááˇáş áá˝ááˇáşááŹá¸ááźáŽá¸ áĄááŻáśá¸ááźáŻáááş áááşáááˇáşáĄáááŽááąá¸áážááşá¸ááźáąáŹááşá¸áá˛áážáŻááťáž ááááŻáĄááşááŤá
- á á˝ááşá¸ááąáŹááşáááş á áąáŹááˇáşááźááˇáşááźááşá¸á ááááŻáááŻááşááźáŻááŻááşááźááşá¸áážááˇáş ááąáŹááŤáážáŹáá˝áąááźááşá¸áĄáá˝ááş áĄááŻáśá¸ááźáŻáááˇáş ááááááŹáá áşááŻááźá áşáááˇáş JDK Flight Recorder (JFR) áááş áááŻáĄá፠command-line arguments ááťáŹá¸á environment variables ááťáŹá¸á áááŚá¸áááşáááŻá¸ááťáŹá¸áážááˇáş system properties ááťáŹá¸ááᯠááááşá¸áááşá¸ááŹá¸ááąáŹ ááąáŹááŤáážáŹáá˝áąáážáŻ áĄááťááşáĄáááşááťáŹá¸áá˝ááş áááˇáşáážááşá¸ááąá¸ááŻááşááźááşá¸ááᯠááśáˇáááŻá¸ááąá¸ááŤáááşá á¤ááźáąáŹááşá¸áá˛áážáŻáááş profiled process ááž ááŻááşááąáŹááşááąáŹ áĄááąá¸ááźáŽá¸ááąááŹááťáŹá¸ááźá áşáááˇáş áá˝ááˇáşááźáŻááťááşáááŻáááşááťáŹá¸áážááˇáş environment variables ááťáŹá¸áážáá áşáááˇáş ááąá¸áááŻáˇááąáŹ API access keys ááťáŹá¸ áááŻá áááˇáşáážáŻááᯠááŹáá˝ááşááąá¸ááŤáááşá
- Lazy Constants API áá˛áˇ ááááááźáąáŹááş preview ááᯠáááźáąáŹááşá¸áá˛áááŻááşáá˛áˇááąááŹáá˝áąááŤáá˛áˇ object áá˝áąáá˛áˇáĄááŻááşááŻááşáááŻáˇáá˛áˇ JVM áážáŹ constant áá˝áąáĄááźá áşáááşáážááşáááŻáˇáĄáá˝ááş áĄááąáŹááşáĄáááşááąáŹáşááŹá¸ááŤáááşá "final" keyword ááŤáá˛áˇ field áá˝áąáĄáá˝ááş áĄááŹá¸áá° performance optimization áá˝áąááᯠobject áá˝áąáážáŹ áĄááŻáśá¸ááźáŻááŤáááşá "final" áá˛áˇááá°áá˛á API áĄáá áşá constant values ââáá˝áąáááşááŽá¸ááŹááᯠáá°áááŻáˇáá˛áˇ initialization áááą áá˝á˛ááŻááşááźáŽá¸ value áá áşááŻááᯠáá áşááźáááşáᲠinitialize ááŻááşáááŻááşáááşáááŻáˇ áĄáŹáááśááŤáááşá program startup time ááᯠááťážáąáŹáˇááťááąá¸ááźáŽá¸á áĄáááşá JDK-internal code áážáŹááŹáĄááŻáśá¸ááźáŻáá˛áˇáá˛áˇ constant-folding optimization áá˝áąááᯠuser code áážáŹáĄááŻáśá¸ááźáŻáááŻááşáĄáąáŹááş ááŻááşááąáŹááşááąá¸ááŤáááşá class Application { // Previously: // static final UserService USERS = new UserService(); // Now: static final StableValue USERS = StableValue.of(); public static UserService users() { USERS.orElseSet(UserService::new); ááᯠreturn } }
- pattern matching engine áááş primitive type ááťáŹá¸ (int, byte, char áážááˇáş áĄááźáŹá¸ non-object base type ááťáŹá¸) ááᯠpattern áĄááťááŻá¸ááťááŻá¸áá˝ááşá instanceof operator áážááˇáş switch block ááťáŹá¸áá˝ááş áĄááŻáśá¸ááźáŻáááŻááşá á˝ááşá¸á ááášá áááźáąáŹááşáá°ááźááşá¸ááᯠááááşáááşááąá¸áááşá switch (x.getStatus()) { case 0 -> "okay"; case 1 -> "warning"; case 2 -> "error"; case int i -> "unknown status: " + i; } if (i instanceof byte b) { ⌠b ⌠}
- ááá°ááŽááąáŹ thread ááťáŹá¸ááąáŤáşáá˝ááş áááşáááşááąááąáŹ áĄááŻááşááťáŹá¸á á˝áŹááᯠáá áşááŻáááşá¸ááąáŹ unit áĄááźá áş áááąáŹááŹá¸ááźááşá¸ááźááˇáş multithreaded application ááťáŹá¸ áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻááᯠáááŻá¸áážááşá¸á áąáááˇáş Structured Concurrency API á ááŻáá áşááŻááźáąáŹááşáá°ááźááşá¸ááᯠá ááşá¸áááşáááşáĄáá˝ááş ááŻááşááźááşáááŻááşááŤááźáŽá
- Vector API á áááˇáşáážá áşááźáááşááźáąáŹááş á ááşá¸áááşáĄááąáŹááşáĄáááşááąáŹáşáážáŻááᯠáĄááąáŹááşáĄáááşááąáŹáşááźáŽá¸ááŤááźáŽá ᤠAPI áááş x86_64 áážááˇáş AArch64 processor vector áá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááąáŹááşááąáŹ vector áá˝ááşááťááşáážáŻááťáŹá¸áĄáá˝ááş ááŻááşááąáŹááşááťááşááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸ááźáŽá¸ multiple values ââââ(SIMD) áá˝ááş áá áşááźááŻááşáááşáááşá¸ ááŻááşááąáŹááşáážáŻááťáŹá¸ááᯠáá˝ááˇáşááźáŻáááşá HotSpot JIT compiler á scalar ááŻááşááąáŹááşááťááşááťáŹá¸á auto-vectorization áážááˇáşááá°áá˛á API áĄáá áşáááş parallel data processing áĄáá˝ááş vectorization ááᯠáážááşá¸áááşá¸á á˝áŹ ááááşá¸ááťáŻááşáááŻááşá áąááŤáááşá
- PEM (Pivacy-Enhanced Mail) ááąáŹáşáááşááᯠáĄááŻáśá¸ááźáŻá cryptographic keysá certificates áážááˇáş certificate revocation list ááťáŹá¸ááŤáááşááąáŹ objects ááťáŹá¸ááᯠencode ááŻááşáááşáážááˇáş decode ááŻááşáááşáĄáá˝ááş API á áááááá°ááźááşá¸ááᯠáááŻááážááááŻááşááŤááźáŽá
áááŻáˇáĄááźááşá ááááşáá
áşáĄááŻáśá¸ááźáŻáá°ááťááşáážáŹááźááşáĄáááŽááąá¸áážááşá¸ááťáŹá¸áááşááŽá¸áááşáĄáá˝ááş JavaFX 27 ááááşááąáŹááşá¸áĄáá˝ááş áĄááşááááşáá
áşááŻááŻááşááźááşáááŻááşááźáąáŹááşá¸ ááźáąááŹáááźááşá¸áĄáá˝ááş áááşá¸ááźáąáŹááşááááŤáááşá JavaScript (Node.js)á Pythoná Rubyá Rá áááşáááˇáş JVM ááŹááŹá
ááŹá¸ (Javaá Scalaá Clojureá Kotlin) áážááˇáş LLVM bitcode áááŻááŻááşááŻááşáááŻááşáááˇáşááŹááŹá
ááŹá¸ááťáŹá¸ (Cá C++á Rust) áááŻáˇáá˝ááş áĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸áááˇáş GraalVM 27 universal virtual machine ááŻááşááźááşáážáŻáááŻáááşá¸ ááŹáááˇáşááŹááŽáĄáááşá¸áááşáĄáá˝ááşá¸ ááŻááşááźááşáááşáᯠááťážáąáŹáşáááˇáşáááŤáááşá
source: opennet.ru
