Java SE 27 ו-OpenJDK 27 שוחררו

לאחר שישה חודשי פיתוח, Oracle הוציאה את Java SE 27 (Java Platform, Standard Edition 27), המשתמשת בפרויקט OpenJDK בקוד פתוח כמימוש הייחוס שלה. למעט הסרת כמה תכונות שהוצאו משימוש, Java SE 27 שומר על תאימות לאחור עם מהדורות קודמות של פלטפורמת Java - רוב פרויקטי Java שנכתבו בעבר יפעלו ללא שינוי כאשר הם פועלים תחת הגרסה החדשה. גרסאות גיבוי מוכנות להתקנה של Java SE 27 (JDK, JRE ו-Server JRE) מוכנות עבור... Linux (x86_64, AArch64), Windows (x86_64) ו- macOS (x86_64, AArch64). יישום הייחוס של Java SE 27, שפותח על ידי פרויקט OpenJDK, הוא קוד פתוח מלא תחת רישיון GPLv2 עם GNU ClassPath Exception, המאפשר קישור דינמי עם מוצרים מסחריים.

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 מחלק את הזיכרון לאזורים קטנים רבים ומתעדף את האזורים עם יותר אובייקטים שאינם בשימוש ופחות גישה פעילה לנתונים.
  • ה-JVM של HotSpot משתמש כברירת מחדל בכותרות אובייקטים קומפקטיות. במערכות 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). ב-API של javax.net.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 משתמשים = StableValue.of(); public static UserService users() { return USERS.orElseSet(UserService::new); } }
  • מנוע התאמת התבניות מציג טיוטה חמישית של היכולת להשתמש בטיפוסים פרימיטיביים (int, byte, char, וטיפוסים בסיסיים אחרים שאינם אובייקטים) בכל מיני תבניות, באופרטור instanceof, ובבלוקי switch. switch (x.getStatus()) { case 0 -> "okay"; case 1 -> "warning"; case 2 -> "error"; case int i -> "unknown status: " + i; } if (i instanceof byte b) { … b … }
  • הטיוטה השביעית של ממשק ה-API של Structured Concurrency, אשר מפשטת את פיתוח יישומים מרובי-הליכים על ידי התייחסות למספר משימות הפועלות על הליכים שונים כיחידה אחת, שוחררה לבדיקה.
  • יישום הבדיקה השתים עשרה של ממשק ה-API של וקטור יושם. ממשק API זה מספק פונקציות לחישובי וקטור המבוצעים באמצעות הוראות וקטור של מעבדי x86_64 ו-AArch64 ומאפשר פעולות סימולטניות על ערכים מרובים (SIMD). בניגוד לווקטוריזציה אוטומטית של פעולות סקלריות במהדר HotSpot JIT, ממשק ה-API החדש מאפשר שליטה מפורשת על וקטוריזציה לעיבוד נתונים מקבילי.
  • טיוטה שלישית של ה-API זמינה כעת לקידוד ופענוח של אובייקטים המכילים מפתחות קריפטוגרפיים, אישורים ורשימות ביטול אישורים באמצעות פורמט PEM (Pivacy-Enhanced Mail).

בנוסף, אנו שמחים להודיע ​​על שחרור עדכון לפלטפורמת JavaFX 27 ליצירת יישומי ממשק משתמש גרפי. השקת המכונה הווירטואלית האוניברסלית GraalVM 27, התומכת בהרצת יישומים ב-JavaScript (Node.js), Python, Ruby, R, כל שפת JVM (Java, Scala, Clojure, Kotlin), ושפות עבורן ניתן ליצור קוד סיביות של LLVM (C, C++, Rust), צפויה גם היא בשעות הקרובות.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster