Publikimi i Java SE 27 dhe OpenJDK 27

Pas six mois de dĂ©veloppement, Oracle a publiĂ© la plateforme Java SE 27 (Java Platform, Standard Edition 27), dont la mise en Ɠuvre de rĂ©fĂ©rence est le projet open-source OpenJDK. À l'exception de la suppression de certaines fonctionnalitĂ©s obsolĂštes, Java SE 27 maintient la compatibilitĂ© avec les versions prĂ©cĂ©dentes de la plateforme Java — la majoritĂ© des projets Java prĂ©cĂ©demment Ă©crits fonctionneront sans modifications avec la nouvelle version. Des builds prĂȘtes Ă  l'installation de Java SE 27 (JDK, JRE et Server JRE) ont Ă©tĂ© prĂ©parĂ©es pour Linux (x86_64, AArch64), Windows (x86_64) et macOS (x86_64, AArch64). La mise en Ɠuvre de rĂ©fĂ©rence de Java SE 27, dĂ©veloppĂ©e dans le cadre du projet OpenJDK, est entiĂšrement ouverte sous la licence GPLv2 avec des exceptions GNU ClassPath, permettant la liaison dynamique avec des produits commerciaux.

Java SE 27 est classé parmi les versions à support standard, avec des mises à jour qui seront publiées jusqu'à la prochaine version. Pour un support à long terme (LTS), on doit utiliser Java SE 25, Java SE 21 ou Java SE 17, avec des mises à jour qui seront publiées jusqu'en 2033, 2031 et 2029 respectivement (publiquement disponibles jusqu'en septembre 2030, 2028 et 2026). Le support étendu de la branche LTS de Java SE 8 se poursuivra jusqu'en 2030, tandis que Java SE 11 bénéficiera d'un support jusqu'en 2032.

Ndër ndryshimet në Java SE 27 (1, 2, 3, 4):

  • Si parazgjedhje, pĂ«r tĂ« gjitha mjediset pĂ«rdoret mbledhĂ«si i mbeturinave G1 (Garbage-First), i cili mĂ« parĂ« pĂ«rdorej pĂ«r sistemet server. G1 Ă«shtĂ« i optimizuar pĂ«r pĂ«rdorim nĂ« sisteme shumĂ«procesorike me sasi tĂ« madhe memorieje dhe pĂ«r tĂ« balancuar parashikueshmĂ«rinĂ« e vonesave me kapacitet tĂ« lartĂ« pĂ«rpunimi. GjatĂ« punĂ«s, G1 e ndan memorien nĂ« shumĂ« rajone tĂ« vogla dhe fillimisht pastron ato rajone ku ka mĂ« shumĂ« objekte tĂ« papĂ«rdorura dhe mĂ« pak tĂ« dhĂ«na nĂ« pĂ«rdorim aktiv.
  • NĂ« HotSpot JVM, si parazgjedhje pĂ«rdoren tituj kompaktĂ« tĂ« objekteve. MadhĂ«sia e titujve nĂ« sistemet 64-bit Ă«shtĂ« zvogĂ«luar nga 96 nĂ« 64 bit, gjĂ« qĂ« ka ulur konsumin e memories dhe ka rritur gjasat qĂ« tĂ« dhĂ«nat tĂ« futen nĂ« cache tĂ« procesorit. NĂ« testet SPECjbb2015, konsumi i memories u ul me 22%, ngarkesa nĂ« CPU u zvogĂ«lua me 8%, ndĂ«rsa numri i operacioneve tĂ« mbledhjes sĂ« mbeturinave ra me 15%. GjatĂ« testimit tĂ« parserit JSON, koha e ekzekutimit tĂ« testeve u shkurtua me 10%.
  • NĂ« implementimin e TLS 1.3 Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r skemat hibride tĂ« marrĂ«veshjes sĂ« çelĂ«save, duke kombinuar algoritmin ML-KEM (CRYSTALS-Kyber), rezistent ndaj thyerjes me forcĂ« brutale nĂ« kompjuterĂ« kuantikĂ«, me algoritmet klasike ECDHE tĂ« bazuara nĂ« kurbat eliptike: X25519MLKEM768 (ECDHE me kurbĂ«n X25519 + ML-KEM-768), SecP256r1MLKEM76 (ECDHE me kurbĂ«n secp256r1 + ML-KEM-768) dhe SecP384r1MLKEM1024 (ECDHE me kurbĂ«n secp384r1 + ML-KEM-1024). NĂ« API javax.net.ssl KĂ«to skema janĂ« aktivizuar si parazgjedhje dhe pĂ«r pĂ«rdorimin e tyre nuk kĂ«rkojnĂ« ndryshime nĂ« aplikacione.
  • NĂ« paketĂ«n e mjeteve JDK Flight Recorder (JFR), e pĂ«rdorur pĂ«r monitorim, profilizim dhe diagnostikim tĂ« performancĂ«s, Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r pastrimin nĂ« informacionin diagnostik tĂ« ruajtur tĂ« argumenteve tĂ« linjĂ«s sĂ« komandĂ«s, vlerave fillestare tĂ« variablave tĂ« mjedisit dhe vetive tĂ« sistemit. Ky ndryshim ndihmon nĂ« parandalimin e rrjedhjes sĂ« tĂ« dhĂ«nave konfidenciale qĂ« pĂ«rpunohen nga procesi i profilizuar, si p.sh. token-et e autorizimit dhe çelĂ«sat e aksesit nĂ« API tĂ« transmetuar pĂ«rmes variablave tĂ« mjedisit.
  • La troisiĂšme prĂ©version de l'API Lazy Constants a Ă©tĂ© mise en Ɠuvre pour travailler avec des objets contenant des donnĂ©es immuables, traitĂ©s dans la JVM comme des constantes. Des optimisations de performance, similaires Ă  celles appliquĂ©es aux champs avec le mot-clĂ© « final », sont appliquĂ©es Ă  ces objets. Contrairement Ă  « final », la nouvelle API sĂ©pare la crĂ©ation de valeurs constantes de leur initialisation, garantissant que la valeur ne peut ĂȘtre initialisĂ©e qu'une seule fois, rĂ©duisant le temps de dĂ©marrage des programmes et permettant d'appliquer dans le code utilisateur des optimisations de rĂ©duction des constantes (constant-folding), qui Ă©taient auparavant utilisĂ©es uniquement dans le code interne du JDK. class Application { // Avant: // static final UserService USERS = new UserService(); // Maintenant, on peut: static final StableValue USERS = StableValue.of(); public static UserService users() { return USERS.orElseSet(UserService::new); } }
  • NĂ« mekanizmin e pĂ«rputhjes me mostrĂ«n, propozohet njĂ« variant i pestĂ« paraprak i mundĂ«sive pĂ«r tĂ« pĂ«rdorur tipe primitive (int, byte, char dhe tipe tĂ« tjera bazike qĂ« nuk janĂ« objekte) nĂ« tĂ« gjithĂ« llojet e shabllonĂ«ve, nĂ« operatorin «instanceof» dhe nĂ« blloqet «switch». switch (x.getStatus()) { case 0 -> «okay»; case 1 -> «warning»; case 2 -> «error»; case int i -> «status i panjohur: » + i; } if (i instanceof byte b) { 
 b 
 }
  • ËshtĂ« propozuar pĂ«r testim varianti i shtatĂ« paraprak i API-sĂ« pĂ«r Structured Concurrency, i cili thjeshton zhvillimin e aplikacioneve shumĂ«fijĂ«she duke trajtuar disa detyra qĂ« ekzekutohen nĂ« fije tĂ« ndryshme si njĂ« bllok i vetĂ«m.
  • ËshtĂ« realizuar implementimi i dymbĂ«dhjetĂ« testues i API-sĂ« Vector, i cili ofron funksione pĂ«r llogaritje vektoriale qĂ« ekzekutohen duke pĂ«rdorur instruksionet vektoriale tĂ« procesorĂ«ve x86_64 dhe AArch64 dhe mundĂ«sojnĂ« zbatimin e njĂ«kohshĂ«m tĂ« operacioneve mbi disa vlera njĂ«herĂ«sh (SIMD). Ndryshe nga mundĂ«sitĂ« e autovektorizimit tĂ« operacioneve skalare qĂ« ofron JIT-kompiluesi HotSpot, API-ja e re lejon kontroll tĂ« drejtpĂ«rdrejtĂ« tĂ« vektorizimit pĂ«r pĂ«rpunim paralel tĂ« tĂ« dhĂ«nave.
  • ËshtĂ« i disponueshĂ«m varianti i tretĂ« paraprak i API-sĂ« pĂ«r kodimin dhe dekodimin e objekteve me çelĂ«sa kriptografikĂ«, certifikata dhe lista tĂ« certifikatave tĂ« revokuara, duke pĂ«rdorur formatin PEM (Pivacy-Enhanced Mail).

Gjithashtu vlen të përmendet publikimi i përditësimit të platformës JavaFX 27 për krijimin e aplikacioneve me ndërfaqe grafike. Në orët në vijim pritet edhe dalja e makinës virtuale universale GraalVM 27, e cila mbështet ekzekutimin e aplikacioneve në JavaScript (Node.js), Python, Ruby, R, në çdo gjuhë për JVM (Java, Scala, Clojure, Kotlin) dhe në gjuhë për të cilat mund të gjenerohet bitkodi LLVM (C, C++, Rust).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster