Java SE 27 және OpenJDK 27 шығарылды

Алты айлық әзірлеуден кейін Oracle ашық бастапқы коды OpenJDK жобасын анықтамалық іске асыру ретінде пайдаланатын Java SE 27 (Java Platform, Standard Edition 27) шығарды. Кейбір ескірген мүмкіндіктерді алып тастауды қоспағанда, Java SE 27 Java платформасының алдыңғы нұсқаларымен кері үйлесімділікті сақтайды — бұрын жазылған Java жобаларының көпшілігі жаңа нұсқада жұмыс істеген кезде өзгеріссіз жұмыс істейді. Java SE 27 (JDK, JRE және Server JRE) орнатуға дайын нұсқалары... Linux (x86_64, AArch64), Windows (x86_64) және macOS (x86_64, AArch64). OpenJDK жобасымен әзірленген Java SE 27 анықтамалық іске асыруы GPLv2 лицензиясы бойынша GNU ClassPath ерекшелігімен толығымен ашық бастапқы код болып табылады, бұл коммерциялық өнімдермен динамикалық байланыстыруға мүмкіндік береді.

Java SE 27 тұрақты қолдау нұсқасы ретінде жіктелген, жаңартулар келесі нұсқасына дейін шығарылады. Ұзақ мерзімді қолдау (LTS) тармағы Java SE 25, Java SE 21 немесе Java SE 17 болуы керек, жаңартулар сәйкесінше 2033, 2031 және 2029 жылдарға дейін шығарылады (әдетте 2030, 2028 және 2026 жылдар қыркүйегіне дейін қолжетімді). Java SE 8 LTS тармағын кеңейтілген қолдау 2030 жылға дейін, ал Java SE 11 тармағын 2032 жылға дейін жалғасады.

Java SE 27 (1, 2, 3, 4) нұсқасындағы өзгерістерге мыналар кіреді:

  • Әдепкі бойынша, барлық орталар бұрын серверлік жүйелер үшін қолданылған G1 (Garbage-First) қоқыс жинағышын пайдаланады. G1 үлкен жад сыйымдылығы бар көп процессорлы жүйелерде пайдалану және болжамды кідіріс пен жоғары өткізу қабілетін теңестіру үшін оңтайландырылған. Жұмыс кезінде G1 жадты көптеген шағын аймақтарға бөледі және пайдаланылмайтын нысандары көп және белсенді түрде қол жеткізілмейтін деректері аз аймақтарға басымдық береді.
  • HotSpot JVM әдепкі бойынша ықшам нысан тақырыптарын пайдаланады. 64 биттік жүйелерде тақырып өлшемі 96-дан 64 битке дейін азайтылды, бұл жадты тұтынуды азайтты және деректердің процессор кэшіне түсу ықтималдығын арттырды. SPECjbb2015 эталондарында жадты тұтыну 22%-ға, процессор жүктемесі 8%-ға, ал қоқыс жинау операцияларының саны 15%-ға төмендеді. JSON парсерінің сынақ уақытын орындау уақыты 10%-ға қысқартты.
  • TLS 1.3 іске асыруы кванттық төзімді ML-KEM (CRYSTALS-Kyber) алгоритмін классикалық ECDHE эллиптикалық қисық алгоритмдерімен біріктіретін гибридті кілт келісім схемаларына қолдауды қосады: X25519MLKEM768 (ECDHE X25519 қисығымен + ML-KEM-768), SecP256r1MLKEM76 (ECDHE secp256r1 қисығымен + ML-KEM-768) және SecP384r1MLKEM1024 (ECDHE secp384r1 қисығымен + ML-KEM-1024). javax.net API-де.Ssl Бұл схемалар әдепкі бойынша қосылған және пайдалану үшін қолданбаны өзгертуді қажет етпейді.
  • Өнімділікті бақылау, профильдеу және диагностикалау үшін қолданылатын JDK Flight Recorder (JFR) құралы енді сақталған диагностикалық ақпараттағы командалық жол аргументтерін, орта айнымалыларының бастапқы мәндерін және жүйенің қасиеттерін зарарсыздандыруды қолдайды. Бұл өзгеріс профильденген процесс арқылы өңделген құпия деректердің, мысалы, авторизациялау токендері мен орта айнымалылары арқылы берілетін API кіру кілттерінің ағып кетуіне жол бермейді.
  • Lazy Constants API үшінші алдын ала қарауы өзгермейтін деректерді қамтитын және JVM-де тұрақтылар ретінде қарастырылатын нысандармен жұмыс істеу үшін енгізілді. Мұндай нысандарға "final" кілт сөзі бар өрістерге ұқсас өнімділікті оңтайландырулар қолданылады. "final"-дан айырмашылығы, жаңа API тұрақты мәндерді жасауды олардың инициализациясынан бөледі, мәнді тек бір рет инициализациялауға болатынына кепілдік береді, бағдарламаны іске қосу уақытын қысқартады және бұрын тек JDK-ішкі кодта қолданылған тұрақты бүктеу оңтайландыруларын пайдаланушы кодында пайдалануға мүмкіндік береді. class Application { // Бұрын: // static final UserService USERS = new UserService(); // Қазір: static final StableValue ПАЙДАЛАНУШЫЛАР = ТұрақтыМәні.of(); public static UserService users() { return USERS.orElseSet(ПайдаланушыСервисі::жаңа); } }
  • Үлгіні сәйкестендіру механизмі барлық үлгі түрлерінде, instanceof операторында және switch блоктарында қарабайыр типтерді (int, байт, char және басқа да объект емес базалық типтер) пайдалану мүмкіндігінің бесінші жобасын енгізеді. switch (x.getStatus()) { case 0 -> "okay"; case 1 -> "warning"; case 2 -> "error"; case int i -> "unknown status: " + i; } if (i instanceof байт b) { … b … }
  • Әртүрлі ағындарда орындалатын бірнеше тапсырмаларды бірыңғай блок ретінде қарастыру арқылы көп ағынды қосымшаларды әзірлеуді жеңілдететін Structured Concurrency API жетінші жобасы сынақтан өткізу үшін шығарылды.
  • Vector API он екінші сынақ нұсқасы іске асырылды. Бұл API x86_64 және AArch64 процессорының векторлық нұсқауларын пайдаланып орындалатын векторлық есептеулерге арналған функцияларды қамтамасыз етеді және бірнеше мәндермен (SIMD) бір мезгілде операциялар жасауға мүмкіндік береді. HotSpot JIT компиляторының скалярлық операцияларды автоматты векторлауынан айырмашылығы, жаңа API параллель деректерді өңдеу үшін векторлауды нақты басқаруға мүмкіндік береді.
  • API-дің үшінші жобасы енді PEM (Pivacy-Enhanced Mail) форматын пайдаланып криптографиялық кілттерді, сертификаттарды және сертификаттарды қайтарып алу тізімдерін қамтитын нысандарды кодтау және декодтау үшін қолжетімді.

Сонымен қатар, графикалық пайдаланушы интерфейсі қосымшаларын жасауға арналған JavaFX 27 платформасына жаңартудың шыққанын хабарлауға қуаныштымыз. Алдағы сағаттарда JavaScript (Node.js), Python, Ruby, R, кез келген JVM тілінде (Java, Scala, Clojure, Kotlin) және LLVM биткодын жасауға болатын тілдерде (C, C++, Rust) жұмыс істейтін қосымшаларды қолдайтын GraalVM 27 әмбебап виртуалды машинасының шығарылымы күтілуде.

Ақпарат көзі: opennet.ru

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster