Java SE 18 නිකුතුව

මාස හයක සංවර්ධනයෙන් පසුව, Oracle විසින් Java SE 18 (Java Platform, Standard Edition 18) නිකුත් කර ඇත, එය OpenJDK විවෘත මූලාශ්‍ර ව්‍යාපෘතිය යොමු ක්‍රියාත්මක කිරීමක් ලෙස භාවිතා කරයි. සමහර අවලංගු වූ විශේෂාංග ඉවත් කිරීම හැර, Java SE 18 ජාවා වේදිකාවේ පෙර නිකුතු සමඟ පසුගාමී අනුකූලතාවයක් පවත්වා ගෙන යයි - බොහෝ කලින් ලියා ඇති ජාවා ව්‍යාපෘති නව අනුවාදය යටතේ ක්‍රියාත්මක වන විට වෙනස් කිරීමකින් තොරව ක්‍රියා කරයි. Linux (x18_86, AArch64), Windows (x64_86) සහ macOS (x64_86, AArch64) සඳහා Java SE 64 (JDK, JRE, සහ Server JRE) ස්ථාපනය කළ හැකි ගොඩනැගීම් සූදානම් කර ඇත. OpenJDK ව්‍යාපෘතිය මගින් වැඩි දියුණු කරන ලද, Java 18 යොමු ක්‍රියාත්මක කිරීම GPLv2 බලපත්‍රය යටතේ GNU ClassPath ව්‍යතිරේක සමඟින් වාණිජ නිෂ්පාදනවලට ගතික සම්බන්ධ කිරීමට ඉඩ දීම සඳහා සම්පූර්ණයෙන්ම විවෘත වේ.

Java SE 18 නිත්‍ය ආධාරක නිකුතුවක් ලෙස වර්ගීකරණය කර ඇති අතර, ඊළඟ නිකුතුවට පෙර යාවත්කාලීන කිරීම් නිකුත් කිරීමට නියමිතය. දිගු කාලීන ආධාරක (LTS) ශාඛාව Java SE 17 විය යුතු අතර, එය 2029 දක්වා යාවත්කාලීන ලැබෙනු ඇත. Java 10 නිකුතුවෙන් පටන් ගෙන, ව්‍යාපෘතිය නව සංවර්ධන ක්‍රියාවලියකට මාරු වූ බව මතක තබා ගන්න, එය නව නිකුතු සෑදීම සඳහා කෙටි චක්‍රයක් ඇඟවුම් කරයි. නිරන්තරයෙන් යාවත්කාලීන කරන ලද එක් ප්‍රධාන ශාඛාවක් තුළ නව ක්‍රියාකාරීත්වය දැන් සංවර්ධනය වෙමින් පවතින අතර, දැනටමත් සම්පූර්ණ කර ඇති වෙනස්කම් ඇතුළත් වන අතර නව නිකුතු ස්ථාවර කිරීම සඳහා සෑම මාස හයකට වරක් ශාඛා බෙදනු ලැබේ.

Java 18 හි නව විශේෂාංග ඇතුළත් වේ:

  • පෙරනිමි කේතනය UTF-8 වේ. අක්ෂර කේතනය මත පදනම්ව පෙළ දත්ත සකසන ජාවා API දැන් පද්ධති සිටුවම් සහ පෙදෙසි සැකසීම් නොසලකා සියලු වේදිකාවල පෙරනිමියෙන් UTF-8 භාවිත කරයි. පද්ධති පෙදෙසිය මත පදනම්ව කේතනය තෝරා ගන්නා ලද පැරණි හැසිරීම වෙත ආපසු යාමට, ඔබට "-Dfile.encoding=COMPAT" විකල්පය භාවිතා කළ හැක.
  • පැකේජයට com.sun.net.http server පැකේජය ඇතුළත් වන අතර, jwebserver utility සහ library API ඇතුළත් වන අතර ස්ථිතික අන්තර්ගතයන් සැපයීම සඳහා සරල http සේවාදායකයක් ක්‍රියාත්මක කිරීම (CGI සහ servlet-වැනි හසුරුවන්නන් සඳහා සහය නොදක්වයි). ගොඩනඟන ලද HTTP සේවාදායකය වැඩ බර සඳහා ප්‍රශස්ත කර නොමැති අතර ප්‍රවේශ පාලනය සහ සත්‍යාපනය සඳහා සහය නොදක්වයි, මන්ද එය මූලික වශයෙන් මූලාකෘතිකරණය, නිදොස්කරණය සහ පරීක්ෂණ ව්‍යාපෘති සඳහා සංවර්ධන ක්‍රියාවලියේදී භාවිතා කිරීම අරමුණු කර ගෙන ඇත.
  • ඔබට වලංගුකරණ මෙවලම්, වාක්‍ය ඛණ්ඩ උද්දීපනය සහ IDE අනුකලනය භාවිතා කළ හැකි API ලේඛන තුළට වැඩ කරන උදාහරණ සහ කේත කොටස් කාවැද්දීම සඳහා JavaDoc "@snippet" ටැගය සඳහා සහය සපයයි.
  • java.lang.reflect API (Core Reflection) ක්‍රියාවට නැංවීම, ක්‍රම, ක්ෂේත්‍ර සහ පන්ති නිර්මාපකයින් පිළිබඳ තොරතුරු ලබා ගැනීමට මෙන්ම පන්තිවල අභ්‍යන්තර ව්‍යුහයට ප්‍රවේශ වීමට සැලසුම් කර ඇත. java.lang.reflect API ම නොවෙනස්ව පවතී, නමුත් දැන් bytecode generators භාවිතා කිරීම වෙනුවට java.lang.invoke මොඩියුලය මඟින් සපයන ක්‍රම හසුරු භාවිතයෙන් ක්‍රියාත්මක වේ. මෙම වෙනස අපට java.lang.reflect සහ java.lang.invoke ක්‍රියාත්මක කිරීම් ඒකාබද්ධ කිරීමට සහ ඒවායේ නඩත්තුව සරල කිරීමට ඉඩ ලබා දුන්නේය.
  • x86_64 සහ AArch64 ප්‍රොසෙසරවල දෛශික උපදෙස් භාවිතයෙන් ක්‍රියාත්මක වන දෛශික ගණනය කිරීම් සඳහා ශ්‍රිත සපයන Vector API හි තුන්වන පෙරදසුනක් යෝජනා කර ඇති අතර බහු අගයන් (SIMD) වෙත එකවර මෙහෙයුම් යෙදීමට ඉඩ සලසයි. අදිශ මෙහෙයුම් ස්වයංක්‍රීයව දෛශිකකරණය සඳහා HotSpot JIT සම්පාදකයෙහි සපයා ඇති හැකියාවන් මෙන් නොව, නව API මඟින් සමාන්තර දත්ත සැකසීම සඳහා දෛශිකකරණය පැහැදිලිව පාලනය කිරීමට හැකි වේ.
  • ධාරක නාම සහ IP ලිපින නිරාකරණය කිරීම සඳහා SPI අතුරුමුහුණත (සේවා සපයන්නා අතුරුමුහුණත) එකතු කරන ලද අතර, ඔබට මෙහෙයුම් පද්ධතිය විසින් පිරිනමනු ලබන හසුරුවන්නන්ට සම්බන්ධ නොවන java.net.InetAddress හි විකල්ප විසඳුම් භාවිතා කිරීමට ඉඩ සලසයි.
  • විදේශීය ක්‍රියාකාරීත්වය සහ මතක API හි දෙවන පෙරදසුනක් සපයනු ලැබේ, ජාවා ධාවන කාලයෙන් පිටත කේතය සහ දත්ත සමඟ අන්තර්ක්‍රියා කිරීමට යෙදුම් වලට ඉඩ සලසයි. නව API ඔබට JVM නොවන කාර්යයන් කාර්යක්ෂමව ඇමතීමට සහ JVM-කළමනාකරනය නොවන මතකයට ප්‍රවේශ වීමට ඉඩ සලසයි. උදාහරණයක් ලෙස, ඔබට JNI භාවිතා නොකර බාහිර බෙදාගත් පුස්තකාලවලින් කාර්යයන් ඇමතීමට සහ ක්‍රියාවලි දත්ත වෙත ප්‍රවේශ විය හැක.
  • “ස්විච්” ප්‍රකාශනවල රටා ගැලපීමෙහි දෙවන පර්යේෂණාත්මක ක්‍රියාත්මක කිරීමක් එකතු කර ඇති අතර, කලින් භාවිතා කිරීමට අවශ්‍ය වූ අගයන් මාලාවක් එකවර ආවරණය කරමින්, නිශ්චිත අගයන්ට වඩා “නඩු” ලේබලවල නම්‍යශීලී රටා භාවිතයට ඉඩ සලසයි. "එසේ නම්" ප්‍රකාශනවල අවුල් සහගත දාමයන්. වස්තුව o = 123L; String formatted = switch (o) {case Integer i -> String.format("int %d", i); නඩුව Long l -> String.format("දිගු %d", l); නඩුව ද්විත්ව d -> String.format("ද්විත්ව %f", d); case String s -> String.format("String %s", s); පෙරනිමිය -> o.toString(); };
  • අවසන් කිරීමේ යාන්ත්‍රණය සහ Object.finalize(), Enum.finalize(), Runtime.runFinalization() සහ System.runFinalization() වැනි එහි ආශ්‍රිත ක්‍රම අත්හරින ලද අතර අනාගත නිකුතුවකදී අක්‍රිය වනු ඇත.
  • ZGC (Z කුණු එකතු කරන්නා), SerialGC, සහ ParallelGC කසළ එකතු කරන්නන් පේළි අඩු කිරීමට සහාය දක්වයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න