Java SE 20 መለቀቅ

ከስድስት ወራት እድገት በኋላ፣ Oracle የOpenJDK ክፍት ምንጭ ፕሮጀክትን እንደ ማጣቀሻ ትግበራ የሚጠቀመውን Java SE 20 (Java Platform፣ Standard Edition 20) መድረክን አውጥቷል። አንዳንድ የተቋረጡ ባህሪያትን ከማስወገድ በስተቀር፣ Java SE 20 ከቀደምት የጃቫ ፕላትፎርም ልቀቶች ጋር ወደ ኋላ ተኳሃኝነትን ያቆያል—በጣም ቀደም ሲል የተፃፉ የጃቫ ፕሮጄክቶች በአዲሱ ስሪት ሲሰሩ ምንም ለውጥ ሳይደረግባቸው ይሰራሉ። ለመጫን ዝግጁ የሆኑ የJava SE 20 (JDK፣ JRE እና Server JRE) ግንባታዎች ለሊኑክስ (x86_64፣ AArch64)፣ ዊንዶውስ (x86_64) እና ማክሮስ (x86_64፣ AArch64) ተዘጋጅተዋል። በOpenJDK ፕሮጄክት የተገነባው የJava 20 ማጣቀሻ ትግበራ በGPLv2 ፍቃድ ከጂኤንዩ ክላስፓዝ ልዩ የንግድ ምርቶች ጋር ተለዋዋጭ ግንኙነትን ለመፍቀድ ሙሉ በሙሉ ክፍት ነው።

Java SE 20 እንደ መደበኛ የድጋፍ ልቀት ተመድቧል፣ ከሚቀጥለው ልቀት በፊት ዝማኔዎች ይለቀቃሉ። የረጅም ጊዜ ድጋፍ (LTS) ቅርንጫፍ Java SE 17 መሆን አለበት፣ ይህም እስከ 2029 ማሻሻያዎችን ይቀበላል። ከጃቫ 10 መለቀቅ ጀምሮ ፕሮጀክቱ ወደ አዲስ የእድገት ሂደት መቀየሩን አስታውስ፣ ይህም ለአዳዲስ ልቀቶች ምስረታ አጭር ዑደትን ያሳያል። አዲስ ተግባር አሁን በየጊዜው በዘመነ ዋና ቅርንጫፍ ውስጥ እየተዘጋጀ ነው፣ ይህም አስቀድሞ የተጠናቀቁ ለውጦችን ያካተተ እና አዳዲስ የተለቀቁትን ለማረጋጋት በየስድስት ወሩ ቅርንጫፎች የሚከፈቱ ናቸው።

በጃቫ 20 ውስጥ አዲስ ባህሪያት የሚከተሉትን ያካትታሉ:

  • የማይለዋወጥ ውሂብ በክሮች ላይ እንዲጋራ እና በህጻናት ክሮች መካከል በብቃት እንዲለዋወጥ የሚያስችል ለ Scoped Values ​​የመጀመሪያ ደረጃ ድጋፍ አለ (እሴቶች በውርስ ይወርሳሉ)። ስፒድ እሴቶች ክር-አካባቢያዊ ተለዋዋጮች ዘዴን ለመተካት እየተዘጋጁ ናቸው እና በጣም ብዙ ቁጥር ያላቸውን ምናባዊ ክሮች (በሺዎች ወይም በሚሊዮኖች የሚቆጠሩ ክሮች) ሲጠቀሙ የበለጠ ቀልጣፋ ናቸው። በ Scoped Values ​​እና በክር-አካባቢያዊ ተለዋዋጮች መካከል ያለው ዋና ልዩነት የቀደሙት አንድ ጊዜ የተፃፉ ፣ወደፊት ሊለወጡ የማይችሉ እና የሚቆዩት ለክርክሩ አፈፃፀም ጊዜ ብቻ መሆኑ ነው። ክፍል አገልጋይ (የመጨረሻ የማይንቀሳቀስ ScopedValue CURRENT_USER = አዲስ ScopedValue(); ባዶ አገልግሎት (የጥያቄ ጥያቄ፣ የምላሽ ምላሽ) {var level = (ጥያቄ. isተፈቀደ()? ADMIN : GUEST); var ተጠቃሚ = አዲስ ተጠቃሚ (ደረጃ); ScopedValue.where(CURRENT_USER፣ ተጠቃሚ) .አሂድ (() -> Application.handle (ጥያቄ፣ ምላሽ)); } } ክፍል DatabaseManager { DBConnection open() {var user = Server.CURRENT_USER.get(); ከሆነ (!user.canOpen ()) አዲስ InvalidUserException (); አዲስ DBConnection ይመለሱ (...); }
  • በጃቫ 16 የተዋወቀውን የስርዓተ-ጥለት ማዛመጃ ባህሪን በማስፋት የመመዝገቢያ ክፍሎችን እሴቶችን ለመተንተን ሁለተኛ የመዝገብ ቅጦች ቅድመ እይታ ታክሏል። ለምሳሌ፡ መዝገብ ነጥብ(int x፣ int y) {} static void printSum(ነገር ነገር) {If (obj instanceof Point p) { int x = px(); int y = py (); System.out.println(x+y); }
  • አራተኛው የስርዓተ-ጥለት ማዛመድ በ"ስዊች" መግለጫዎች ውስጥ ተጨምሯል ፣ ይህም የ"ጉዳይ" መለያዎች ትክክለኛ እሴቶችን እንዲጠቀሙ ያስችላቸዋል ፣ ግን በአንድ ጊዜ ተከታታይ እሴቶችን የሚሸፍኑ ተጣጣፊ ቅጦችን እንዲጠቀሙ ያስችላቸዋል ፣ ለዚህም ቀደም ሲል ከባድ መጠቀም አስፈላጊ ነበር። "ከሆነ ... ሌላ" መግለጫዎች ሰንሰለቶች. static String formatterPatternSwitch(ነገር obj) {የመመለሻ ማብሪያ/ማብሪያ /obj/ {case Integer i -> String.format("int %d", i); መያዣ ረጅም l -> String.format("ረጅም %d", l); መያዣ ድርብ d -> String.format ("ድርብ %f", d); case String s -> String.format("ሕብረቁምፊ %s", s); ነባሪ -> o.toString (); }; }
  • የኤፍኤፍኤም (የውጭ ተግባር እና ማህደረ ትውስታ) ኤፒአይ ሁለተኛ የመጀመሪያ ደረጃ ትግበራ ታክሏል ፣ ይህም የጃቫ ፕሮግራሞችን ከውጫዊ ኮድ እና ዳታ ጋር በውጫዊ ቤተ-መጻህፍት በመደወል እና ከ JVM ውጭ ማህደረ ትውስታን በመድረስ መስተጋብር እንዲያደራጁ ያስችልዎታል።
  • ሁለተኛ የቨርቹዋል ክሮች ቅድመ እይታ ታክሏል፣ እነሱም ቀላል ክብደት ያላቸው ክሮች መፃፍ እና ከፍተኛ አፈጻጸም ያላቸውን ባለብዙ ክሮች አፕሊኬሽኖችን ማቆየት።
  • ለተዋቀረ ትይዩ ሁለተኛ የሙከራ ኤፒአይ ታክሏል፣ ይህም በተለያዩ ክሮች ውስጥ የሚሰሩ በርካታ ተግባራትን እንደ አንድ ብሎክ በማየት የባለብዙ-ክር አፕሊኬሽኖችን እድገትን ቀላል ያደርገዋል።
  • በx86_64 እና AArch64 ፕሮሰሰሮች ላይ የቬክተር መመሪያዎችን በመጠቀም ለሚከናወኑ የቬክተር ስሌቶች ተግባራትን በማቅረብ እና ኦፕሬሽኖችን ለብዙ እሴቶች (ሲኤምዲ) በአንድ ጊዜ እንዲተገበሩ የቬክተር ኤፒአይ አምስተኛ ቅድመ እይታ ታክሏል። የስክላር ኦፕሬሽኖችን በራስ ሰር ቬክተራይዜሽን ለማድረግ በሆትስፖት ጂአይቲ ኮምፕሌተር ውስጥ ከሚቀርቡት ችሎታዎች በተለየ፣ አዲሱ ኤፒአይ ለትይዩ መረጃ ሂደት ቬክተራይዜሽንን በግልፅ ለመቆጣጠር ያስችላል።

ምንጭ: opennet.ru

አስተያየት ያክሉ