JDK 10: מה חדש ב- Java 10

JDK 10, יישום של Java Standard Edition 10, שוחרר ב -20 במרץ 2018. שיפורים עיקריים כוללים סוגים משתנים מקומיים וכן שיפורים לאיסוף אשפה ואוסף.

JDK 10 אמור להיות מהדורה קצרת טווח בלבד, והעדכונים הציבוריים של JDK 10 אמורים להסתיים בעוד חצי שנה. ה- JDK 11 הקרוב, שייצא בספטמבר, יהיה גרסת תמיכה ארוכת טווח (LTS) של Java. מהדורות LTS אמורות להתבצע אחת לשלוש שנים.

אורקל קבעה קצב של שישה חודשים לשחרור Java. היו תוכניות למנות שדרוג זה וממשיכי דרכו בהתבסס על השנה והחודש של המהדורה, עם המהדורה הראשונה שתיקרא Java 18.3. אך התוכניות הללו בוטלו לאחר שהועלו התנגדויות.

היכן ניתן להוריד את Java JDK 10

ניתן להוריד את JDK 10 מהאתר של אורקל.

תכונות חדשות ומשופרות ב- JDK 10

התכונות העיקריות ב- JDK 10 כוללות:

  • מסקנה של סוג משתנה מקומי, כדי לשפר את שפת Java כדי להרחיב את ההיסק לסוג הצהרות של משתנים מקומיים עם אתחול.
  • אוסף אשפה מלא מקביל לאספן האשפה G1, לשיפור זמן ההשהיה במקרה הגרוע ביותר.
  • שיתוף נתונים בכיתת יישומים לייעול זמן ההפעלה וטביעת הרגל. התכונה הקיימת לשיתוף מחלקות נתונים מורחבת כך שניתן למקם שיעורי יישומים בארכיון המשותף.
  • ניתן להשתמש במהדר ניסיוני בזמן אמת, Graal, בפלטפורמת Linux / x64.
  • מודעות דוקר. בעת הפעלה במערכות לינוקס, מכונת ה- Java Virtual Java (JVM) תדע אם היא פועלת במיכל Docker. מידע ספציפי למכולה - מספר המעבדים והזיכרון הכולל שהוקצה למכולה - יחולץ על ידי ה- JVM במקום שישאיל על מערכת ההפעלה. (מספר המעבדים הזמינים לתהליך Java מחושב מתוך קבוצות, מניות או מכסות מוגדרות של מעבדים).
  • שלוש אפשרויות JVM חדשות, כדי לתת למשתמשי מכולה Docker שליטה רבה יותר בזיכרון המערכת.
  • תיקון באגים לתיקון מנגנון הצירוף כשמנסים לצרף מתהליך מארח לתהליך Java שנמצא במיכל Docker.
  • זמני הפעלה קצרים יותר עבור הכלי jShell REPL, במיוחד כאשר קובץ התחלה עם תוספים רבים נמצא בשימוש.
  • ממשקי API חדשים המאפשרים ליצור טוב יותר אוספים שאינם ניתנים לשינוי. copyOf, Set.copyOf, ו Map.copyOfשיטות ליצור מופעים אוספים חדשים מקרים קיימים. שיטות חדשות toUnmodifiableList, toUnmodifiableSet, ו toUnmodifiableMapנוספו Collectorsבכיתה בחבילת Stream, המאפשרות האלמנטים של זרם שייגבו לתוך אוסף unmodifiable.
  • הסקה מסוג משתנה מקומי, להעצמת השפה להרחבת הסקת סוג למשתנים מקומיים. הכוונה היא לצמצם את ה"טקס "הקשור לקידוד תוך שמירה על מחויבות לבטיחות מסוג סטטי.
  • ממשק לאיסוף אשפה נקי לשיפור בידוד קוד המקור של אספני אשפה שונים. המטרות למאמץ זה כוללות מודולריות טובה יותר לקוד איסוף אשפה פנימי במכונה הווירטואלית של HotSpot ולהקל על הוספת אספן אשפה חדש ל- HotSpot.
  • אוסף אשפה מלא מקביל לאוסף הזבל G1. הכוונה היא לשפר את האיחורים הגרועים ביותר על ידי יישום מקביליות.
  • מאפשר ל- HotSpot להקצות את ערמת האובייקט בהתקן זיכרון חלופי, כגון מודול זיכרון NVDIMM, שצוין על ידי המשתמש. תכונה זו צופה כי למערכות עתידיות עשויות להיות ארכיטקטורות זיכרון הטרוגניות.
  • המאפשר להשתמש במהדר בדיוק בזמן מבוסס Grall Java בצורה ניסיונית בפלטפורמת Linux / x64.
  • איחוד המאגרים של יער JDK למאגר יחיד, כדי לייעל את הפיתוח. בסיס הקוד עד כה נשבר למספר רבדים חוזרים, מה שעלול לגרום לבעיות בניהול קוד המקור.
  • שיתוף מחלקת נתונים של יישומים, כדי להפחית את טביעת הרגל על ​​ידי שיתוף מטא-נתונים משותפים של המחלקה בין תהליכים. זמן ההפעלה משופר גם כן.
  • לחיצות יד מקומיות של חוטים, לביצוע התקשרות חוזרת בשרשורים מבלי לבצע נקודת בטוחה עולמית של VM. ניתן היה להפסיק שרשורים בודדים במקום כל השרשורים או ללא שרשורים.
  • אספקת סט ברירת מחדל של אישורי רשות אישורי בסיס ב- JDK. המטרה היא אישורי שורש קוד פתוח בתוכנית Java SE Root CA של אורקל כדי להפוך את OpenJDK לבניית מפתים מפתה יותר.

מפת הדרכים ארוכת הטווח של ג'אווה

הנה מה שאורקל אמרה בבחינת הגרסאות הבאות והמאוחרות של Java SE:

  • פרויקט הענבר, שהיווה חממה לתכונות שפה קטנות יותר וממוקדות לפרודוקטיביות הכוללות הסקה מסוג משתנה מקומי, כדי להקטין את הטקס הקשור לכתיבת קוד Java; enums משופרים, כדי לשפר את האקספרסיביות של מבנה enum על ידי מתן משתני סוג באנומות וביצוע בדיקת סוג חדה יותר עבור קבועי enum; ושאריות למבדה, כדי להגביר את השימושיות של למבדה והפניות לשיטה.
  • פרויקט פנמה, לקישור JVM וקוד מקורי, הכולל שיחות פונקציה מקוריות מה- JVM וגישה לנתונים מקוריים מה- JVM.
  • Valhalla, פרויקט חממה עבור מועמדים מתקדמים של VM ו- Java של Java, כולל סוגי ערכים והתמחות כללית.
  • Project Loom, להפחתת המורכבות בכתיבת יישומים במקביל. התוכנית דורשת להוסיף יישומי חוטים חלופיים, במצב משתמש, המשכים תוחמים, ומבנים אחרים הכוללים מניפולציה על מחסנית שיחה. המטרה העיקרית של הצעה זו היא להציע יישום חלופי של שרשורים, המנוהלים על ידי מתזמנים הכתובים בג'אווה. מודל התכנות ג'אווה של נושאי ג'אווה רגילים יישמר בזמן שהביצועים משופרים וטביעת הרגל מופחתת.

עם לוח הזמנים החדש של שישה חודשים, תכונות שמחמיצות מהדורה אחת עשויות להתעכב רק כשישה חודשים, עם צאת המהדורה הבאה. מעבר למה שהוכרז על JDK 10, אורקל לא התחייבה מתי כל אחת מהתכונות המוצעות החדשות אכן תהיה זמינה בג'אווה.