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 Exception-тай бөгөөд арилжааны бүтээгдэхүүнтэй динамик холболт хийх боломжийг олгодог.

Java SE 27 нь ердийн дэмжлэгийн хувилбар гэж ангилагдсан бөгөөд шинэчлэлтүүд дараагийн хувилбар хүртэл гарна. Урт хугацааны дэмжлэгийн (LTS) салбар нь Java SE 25, Java SE 21 эсвэл Java SE 17 байх ёстой бөгөөд шинэчлэлтүүд нь тус тус 2033, 2031, 2029 он хүртэл гарна (ерөнхийдөө 2030, 2028, 2026 оны 9-р сар хүртэл ашиглах боломжтой). 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%, CPU ачаалал 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(UserService::new); } }
  • Загвар тохируулгын хөдөлгүүр нь бүх төрлийн загварт, 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-ийн долоо дахь хувилбарыг туршилтын зорилгоор гаргалаа.
  • Вектор 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