Java SE 20 නිකුතුව

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

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

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

  • Scoped Values ​​සඳහා මූලික සහය ඇත, නූල් හරහා වෙනස් කළ නොහැකි දත්ත බෙදා ගැනීමට සහ ළමා නූල් අතර කාර්යක්ෂමව දත්ත හුවමාරු කිරීමට ඉඩ සලසයි (අගය උරුම වේ). නූල්-දේශීය විචල්‍ය යාන්ත්‍රණය ප්‍රතිස්ථාපනය කිරීම සඳහා විෂයානුගත අගයන් සංවර්ධනය වෙමින් පවතින අතර ඉතා විශාල අතථ්‍ය නූල් (දහස් හෝ මිලියන ගණනක් නූල්) භාවිතා කරන විට වඩාත් කාර්යක්ෂම වේ. Scoped Values ​​සහ නූල්-දේශීය විචල්‍යයන් අතර ඇති ප්‍රධාන වෙනස නම්, පළමුවැන්න එක් වරක් ලියා තිබීම, අනාගතයේදී වෙනස් කළ නොහැකි අතර, නූල් ක්‍රියාත්මක වන කාලය සඳහා පමණක් පවතිනු ඇත. පන්තියේ සේවාදායකය {අවසාන ස්ථිතික ScopedValue CURRENT_USER = නව ScopedValue(); void serve(ඉල්ලීම ඉල්ලීම, ප්‍රතිචාර ප්‍රතිචාරය) {var level = (ඉල්ලීම. isAuthorized()? ADMIN : GUEST); var පරිශීලක = නව පරිශීලක (මට්ටම); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(ඉල්ලීම, ප්‍රතිචාරය)); } } class DatabaseManager {DBConnection open() {var user = Server.CURRENT_USER.get(); (!user.canOpen()) නව InvalidUserException(); නව DBCconnection (...); } }
  • වාර්තා පන්තිවල අගයන් විග්‍රහ කිරීම සඳහා Java 16 හි හඳුන්වා දී ඇති රටා ගැලපුම් විශේෂාංගය දිගු කරමින් වාර්තා රටා වල දෙවන පෙරදසුනක් එක් කර ඇත. උදාහරණයක් ලෙස: සටහන් Point(int x, int y) {} static void printSum(Object obj) {if (obj instanceof Point p) {int x = px(); int y = py(); System.out.println(x+y); } }
  • “ස්විච්” ප්‍රකාශයන් තුළ රටා ගැලපීම පිළිබඳ සිව්වන මූලික ක්‍රියාත්මක කිරීමක් එකතු කර ඇති අතර, “නඩු” ලේබල්වලට නිශ්චිත අගයන් නොව, එකවර අගයන් මාලාවක් ආවරණය වන නම්‍යශීලී රටා භාවිතා කිරීමට ඉඩ සලසයි, ඒ සඳහා මීට පෙර අපහසු ලෙස භාවිතා කිරීමට අවශ්‍ය විය. "if... else" ප්‍රකාශන දාම. static String formatterPatternSwitch(Object obj) { return switch (obj) {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(); }; }
  • FFM (Foreign Function & Memory) API හි දෙවන මූලික ක්‍රියාත්මක කිරීමක් එක් කර ඇත, එය ඔබට බාහිර පුස්තකාල වලින් ඇමතුම් ශ්‍රිතයන් සහ JVM වලින් පිටත මතකයට ප්‍රවේශ වීම හරහා බාහිර කේත සහ දත්ත සමඟ ජාවා වැඩසටහන් වල අන්තර්ක්‍රියා සංවිධානය කිරීමට ඉඩ සලසයි.
  • අතථ්‍ය නූල්වල දෙවන පෙරදසුනක් එක් කර ඇත, ඒවා සැහැල්ලු නූල් වන අතර ඒවා ලිවීම සහ ඉහළ ක්‍රියාකාරී බහු-නූල් යෙදුම් නඩත්තු කිරීම බෙහෙවින් සරල කරයි.
  • ව්‍යුහගත සමාන්තරකරණය සඳහා දෙවන පර්යේෂණාත්මක API එකක් එක් කරන ලදී, එය විවිධ නූල්වල ක්‍රියාත්මක වන බහු කාර්ය තනි බ්ලොක් එකක් ලෙස සැලකීමෙන් බහු-නූල් යෙදුම් සංවර්ධනය කිරීම සරල කරයි.
  • Vector API හි පස්වන පෙරදසුනක් එක් කර ඇති අතර, x86_64 සහ AArch64 ප්‍රොසෙසරවල දෛශික උපදෙස් භාවිතයෙන් සිදු කරන දෛශික ගණනය කිරීම් සඳහා කාර්යයන් සපයන අතර බහු අගයන් (SIMD) වෙත එකවර මෙහෙයුම් යෙදීමට ඉඩ ලබා දේ. අදිශ මෙහෙයුම් ස්වයංක්‍රීයව දෛශිකකරණය සඳහා HotSpot JIT සම්පාදකයෙහි සපයා ඇති හැකියාවන් මෙන් නොව, නව API මඟින් සමාන්තර දත්ත සැකසීම සඳහා දෛශිකකරණය පැහැදිලිව පාලනය කිරීමට හැකි වේ.

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

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