Java SE 18 መለቀቅ

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

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

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

  • ነባሪው ኢንኮዲንግ UTF-8 ነው። በቁምፊ ኢንኮዲንግ ላይ ተመስርተው የጽሑፍ መረጃን የሚያሄዱ Java APIs አሁን የስርዓት ቅንብሮች እና የአካባቢ ቅንጅቶች ምንም ቢሆኑም በሁሉም መድረኮች ላይ UTF-8ን በነባሪነት ይጠቀማሉ። ወደ ቀድሞው ባህሪ ለመመለስ፣ በስርአቱ አካባቢ ላይ በመመስረት ኢንኮዲንግ የሚመረጥበት፣ "-Dfile.encoding=COMPAT" አማራጭን መጠቀም ይችላሉ።
  • እሽጉ የ com.sun.net.httpserver ጥቅልን ያካትታል፣የjwebserver utility እና Library API ን ከቀላል የ http አገልጋይ ትግበራ ጋር የማይለዋወጥ ይዘትን ያቀርባል (ሲጂአይ እና servlet መሰል ተቆጣጣሪዎች አይደገፉም)። አብሮገነብ የኤችቲቲፒ አገልጋይ ለስራ ጫናዎች የተመቻቸ አይደለም እና የመዳረሻ ቁጥጥር እና ማረጋገጫን አይደግፍም ምክንያቱም በዋናነት በልማት ሂደት ውስጥ ለፕሮቶታይፕ ፣ለማረም እና ለሙከራ ፕሮጄክቶች ጥቅም ላይ ይውላል።
  • JavaDoc የማረጋገጫ መሳሪያዎችን፣ የአገባብ ማድመቂያን እና የ IDE ውህደትን መጠቀም የምትችልበት የስራ ምሳሌዎችን እና የኮድ ቅንጣቢዎችን ወደ ኤፒአይ ሰነድ ለማስገባት ለ«@snippet» መለያ ድጋፍ ይሰጣል።
  • የ java.lang.reflect API (ኮር ነጸብራቅ) ትግበራ ስለ ዘዴዎች, መስኮች እና ክፍል ገንቢዎች መረጃን ለማግኘት እንዲሁም የመማሪያ ክፍሎችን ውስጣዊ መዋቅር ለማግኘት የተነደፈ, እንደገና ተዘጋጅቷል. የ java.lang.reflect ኤፒአይ ራሱ ሳይለወጥ ይቆያል፣ አሁን ግን የባይቴኮድ ማመንጫዎችን ከመጠቀም ይልቅ በ java.lang.invoke ሞጁል የቀረቡ የአሰራር መያዣዎችን በመጠቀም ተተግብሯል። ለውጡ የ java.lang.reflect እና java.lang.invoke አተገባበርን አንድ ለማድረግ እና ጥገናቸውን ቀላል ለማድረግ አስችሎናል።
  • በ x86_64 እና AArch64 ፕሮሰሰሮች ላይ የቬክተር መመሪያዎችን በመጠቀም ለሚፈጸሙ የቬክተር ስሌቶች ተግባራትን የሚያቀርብ የቬክተር ኤፒአይ ሶስተኛ ቅድመ እይታ ቀርቧል እና ክዋኔዎች ለብዙ እሴቶች (ሲኤምዲ) በአንድ ጊዜ እንዲተገበሩ ያስችላል። የስክላር ኦፕሬሽኖችን በራስ ሰር ቬክተራይዜሽን ለማድረግ በሆትስፖት ጂአይቲ ኮምፕሌተር ውስጥ ከሚቀርቡት ችሎታዎች በተለየ፣ አዲሱ ኤፒአይ ለትይዩ መረጃ ሂደት ቬክተራይዜሽንን በግልፅ ለመቆጣጠር ያስችላል።
  • የአስተናጋጅ ስሞችን እና የአይፒ አድራሻዎችን ለመፍታት የተጨመረው የ SPI በይነገጽ (አገልግሎት-አቅራቢ በይነገጽ) ፣ ይህም በጃቫ.net.InetAddress ውስጥ በስርዓተ ክወናው ከሚቀርቡ ተቆጣጣሪዎች ጋር ያልተገናኙ ተለዋጭ መፍትሄዎችን እንዲጠቀሙ ያስችልዎታል።
  • የውጭ ተግባር እና ማህደረ ትውስታ ኤፒአይ ሁለተኛ ቅድመ እይታ ቀርቧል፣ ይህም መተግበሪያዎች ከጃቫ አሂድ ጊዜ ውጭ ከኮድ እና ዳታ ጋር እንዲገናኙ ያስችላቸዋል። አዲሱ ኤፒአይ የJVM ያልሆኑ ተግባራትን በብቃት እንዲደውሉ እና በJVM የማይተዳደር ማህደረ ትውስታን እንዲያገኙ ይፈቅድልዎታል። ለምሳሌ፣ ከውጫዊ የጋራ ቤተ-መጻሕፍት ተግባራትን መጥራት እና JNI ሳትጠቀም የሂደት ውሂብን መድረስ ትችላለህ።
  • በ "መቀያየር" መግለጫዎች ውስጥ የስርዓተ-ጥለት ማዛመድ ሁለተኛ የሙከራ ትግበራ ተጨምሯል ፣ ይህም ተለዋዋጭ ቅጦችን በ "ጉዳይ" መለያዎች ውስጥ ከትክክለኛ እሴቶች ይልቅ ፣ በአንድ ጊዜ ተከታታይ እሴቶችን የሚሸፍን ሲሆን ከዚህ በፊት መጠቀም አስፈላጊ ነበር ። “ከሆነ... ካልሆነ” አገላለጾች አስቸጋሪ ሰንሰለቶች። ነገር o = 123L; ሕብረቁምፊ ቅርጸት = ማብሪያ (o) { 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 (); };
  • የማጠናቀቂያ ዘዴው እና እንደ Object.finalize()፣ Enum.finalize()፣ Runtime.runFinalization() እና System.runFinalization() ያሉ ተያያዥ ስልቶቹ ተቋርጠዋል እና ወደፊት በሚለቀቅበት ጊዜ ይሰናከላሉ።
  • የZGC (Z ቆሻሻ ሰብሳቢ)፣ SerialGC እና ParallelGC ቆሻሻ ሰብሳቢዎች የረድፍ ማባዛትን ይደግፋሉ።

ምንጭ: opennet.ru

አስተያየት ያክሉ