Java SE 22 இயங்குதளம் மற்றும் OpenJDK 22 திறந்த குறிப்பு செயல்படுத்தல் வெளியீடு

ஆறு மாத வளர்ச்சிக்குப் பிறகு, ஆரக்கிள் ஜாவா எஸ்இ 22 (ஜாவா பிளாட்ஃபார்ம், ஸ்டாண்டர்ட் எடிஷன் 22) இயங்குதளத்தை வெளியிட்டது, இது ஓபன்ஜேடிகே ஓப்பன் சோர்ஸ் திட்டத்தை ஒரு குறிப்பு செயலாக்கமாகப் பயன்படுத்துகிறது. தடைசெய்யப்பட்ட சில அம்சங்களை அகற்றுவதைத் தவிர, Java SE 22 ஜாவா இயங்குதளத்தின் முந்தைய வெளியீடுகளுடன் பின்தங்கிய இணக்கத்தன்மையைப் பராமரிக்கிறது-முன்பு எழுதப்பட்ட ஜாவா திட்டங்கள் புதிய பதிப்பின் கீழ் இயங்கும்போது மாற்றமின்றி செயல்படும். Linux (x22_86, AArch64), Windows (x64_86), மற்றும் macOS (x64_86, AArch64) ஆகியவற்றிற்காக Java SE 64 (JDK, JRE மற்றும் Server JRE) இன் நிறுவலுக்குத் தயாராக உள்ளது. OpenJDK திட்டத்தால் உருவாக்கப்பட்டது, ஜாவா 22 குறிப்பு செயலாக்கமானது GPLv2 உரிமத்தின் கீழ் GNU ClassPath விதிவிலக்குகளுடன் வணிக தயாரிப்புகளுடன் மாறும் இணைப்பை அனுமதிக்கும் முழு திறந்த மூலமாகும்.

Java SE 22 வழக்கமான ஆதரவு வெளியீடாக வகைப்படுத்தப்பட்டுள்ளது மற்றும் அடுத்த வெளியீடு வரை தொடர்ந்து புதுப்பிப்புகளைப் பெறும். நீண்ட கால ஆதரவு (LTS) கிளையானது Java SE 21 அல்லது Java SE 17 ஆக இருக்க வேண்டும், இது முறையே 2031 மற்றும் 2029 வரை புதுப்பிப்புகளைப் பெறும் (பொதுவாக 2028 மற்றும் 2026 வரை கிடைக்கும்). Java SE 11 இன் LTS கிளைக்கான பொது ஆதரவு கடந்த செப்டம்பரில் முடிவடைந்தது, ஆனால் நீட்டிக்கப்பட்ட ஆதரவு 2032 வரை தொடரும். Java SE 8 இன் LTS கிளைக்கான விரிவாக்கப்பட்ட ஆதரவு 2030 வரை தொடரும்.

ஜாவா 10 வெளியீட்டில் தொடங்கி, திட்டம் ஒரு புதிய மேம்பாட்டு செயல்முறைக்கு மாறியது, இது புதிய வெளியீடுகளை உருவாக்குவதற்கான குறுகிய சுழற்சியைக் குறிக்கிறது. தொடர்ந்து புதுப்பிக்கப்பட்ட முதன்மைக் கிளையில் புதிய செயல்பாடு இப்போது உருவாக்கப்பட்டுள்ளது, இதில் ஆயத்த மாற்றங்கள் மற்றும் ஒவ்வொரு ஆறு மாதங்களுக்கும் கிளைகள் கிளைகள் புதிய வெளியீடுகளை உறுதிப்படுத்துகின்றன.

ஜாவா 22 இல் உள்ள புதிய அம்சங்கள்:

  • G1 குப்பை சேகரிப்பான் பகுதி பின்னிங்கிற்கான ஆதரவை உள்ளடக்கியது, இது குப்பை சேகரிப்பாளரால் நகர்த்தப்படுவதைத் தவிர்க்க நினைவகத்தில் உள்ள ஜாவா பொருட்களின் இருப்பிடத்தை தற்காலிகமாக சரிசெய்ய உங்களை அனுமதிக்கிறது மற்றும் இந்த பொருட்களின் குறிப்புகளை ஜாவா மற்றும் நேட்டிவ் கோட் இடையே பாதுகாப்பாக அனுப்ப அனுமதிக்கிறது. பின்னிங், JNI (ஜாவா நேட்டிவ் இன்டர்ஃபேஸ்) இன் முக்கியமான பகுதிகளை நேட்டிவ் கோட் மூலம் இயக்கும்போது, ​​தாமதத்தைக் குறைக்கவும் குப்பை சேகரிப்பை முடக்குவதைத் தவிர்க்கவும் உங்களை அனுமதிக்கிறது (இந்தப் பிரிவுகளைச் செயல்படுத்தும் போது, ​​பந்தய நிலைமைகளைத் தவிர்க்க JVM அதனுடன் தொடர்புடைய முக்கியமான பொருட்களை நகர்த்தக்கூடாது). பின்னிங் என்பது குப்பை சேகரிப்பாளரின் பார்வையில் இருந்து முக்கியமான பொருட்களை நீக்குகிறது, இது பின்ன் செய்யப்படாத பகுதிகளை தொடர்ந்து சுத்தம் செய்யும்.
  • சூப்பர்(...) என்று அழைப்பதற்கு முன், கன்ஸ்ட்ரக்டர்களில் வெளிப்பாடுகள் குறிப்பிடப்படுவதற்கு ஒரு ஆரம்ப அம்சம் சேர்க்கப்பட்டுள்ளது, அந்த வெளிப்பாடுகள் கன்ஸ்ட்ரக்டரால் உருவாக்கப்பட்ட நிகழ்வைக் குறிக்கவில்லை என்றால், பரம்பரை வகுப்பைக் கட்டமைப்பாளரிடமிருந்து ஒரு பெற்றோர் வகுப்பு கட்டமைப்பாளரை வெளிப்படையாக அழைக்கப் பயன்படுகிறது. class Outer { void hello() { System.out.println("Hello"); } வகுப்பு உள் {உள்() {ஹலோ(); அருமை(); } } }
  • FFM (Foreign Function & Memory) API நிலைப்படுத்தப்பட்டுள்ளது, JNI (Java Native Interface) ஐப் பயன்படுத்தாமல், வெளிப்புற நூலகங்களிலிருந்து செயல்பாடுகளை அழைப்பதன் மூலமும் JVMக்கு வெளியே நினைவகத்தை அணுகுவதன் மூலமும் வெளிப்புற குறியீடு மற்றும் தரவுகளுடன் ஜாவா நிரல்களின் தொடர்புகளை அனுமதிக்கிறது.
  • பெயரிடப்படாத மாறிகள் மற்றும் பேட்டர்ன் பொருத்தத்திற்கான ஆதரவு இயக்கப்பட்டுள்ளது - பயன்படுத்தப்படாத ஆனால் தேவையான மாறிகள் மற்றும் பேட்டர்ன்களுக்கு பதிலாக, நீங்கள் இப்போது “_” எழுத்தைக் குறிப்பிடலாம். // was String pageName = மாறு (பக்கம்) { case GitHubIssuePage(var url, var content, var links, int issueNumber) -> “ISSUE #” + issueNumber; ...}; // இப்போது நீங்கள் String pageName = மாறலாம் (பக்கம்) {case GitHubIssuePage(_, _, _, int issueNumber) -> “ISSUE #” + issueNumber; };
  • ஜாவா கிளாஸ் கோப்புகளை பாகுபடுத்துவதற்கும், உருவாக்குவதற்கும், மாற்றுவதற்கும் கிளாஸ்-ஃபைல் ஏபிஐயின் பூர்வாங்க செயலாக்கம் முன்மொழியப்பட்டது. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> {க்கு (ClassElement ce : classModel) { if (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). StartsWith("debug"))) { classBuilder.with(ce); } });
  • ஜாவா பயன்பாடு ஜாவா நிரல்களை இயக்கும் திறனை வழங்குகிறது, பல குறியீடு கோப்புகள் அல்லது முன்தொகுக்கப்பட்ட கிளாஸ் லைப்ரரிகளின் வடிவத்தில் வழங்கப்படுகிறது, இந்த கோப்புகளை தனித்தனியாக தொகுக்காமல் மற்றும் கட்டமைப்பை உள்ளமைக்காமல். வெவ்வேறு வகுப்புகளின் குறியீடு தனித்தனி கோப்புகளாக பிரிக்கப்பட்ட நிரல்களை இயக்குவதை புதிய அம்சம் எளிதாக்குகிறது. Prog.java: class Prog { public static void main(String[] args) { Helper.run(); } } Helper.java: class Helper {static void run() { System.out.println("Hello!"); } }

    எடுத்துக்காட்டாக, "Prog.java" மற்றும் "Helper.java" ஆகிய இரண்டு கோப்புகளைக் கொண்ட ஒரு நிரலை இயக்க, இப்போது "java Prog.java" ஐ இயக்குவது போதுமானது, இது Prog வகுப்பைத் தொகுத்து, உதவி வகுப்பிற்கான குறிப்பை வரையறுக்கும், உதவி கோப்பை கண்டுபிடித்து தொகுக்கவும் ஜாவா மற்றும் முக்கிய முறையை அழைக்கவும்.

  • சரம் வார்ப்புருக்களின் இரண்டாவது பூர்வாங்க செயலாக்கம் சேர்க்கப்பட்டது, சரம் எழுத்துகள் மற்றும் உரை தொகுதிகள் கூடுதலாக செயல்படுத்தப்பட்டது. + ஆபரேட்டரைப் பயன்படுத்தாமல், கணக்கிடப்பட்ட வெளிப்பாடுகள் மற்றும் மாறிகளுடன் உரையை இணைக்க சரம் வார்ப்புருக்கள் உங்களை அனுமதிக்கின்றன. \{..} மாற்றுகளைப் பயன்படுத்தி வெளிப்பாடுகளின் மாற்றீடு மேற்கொள்ளப்படுகிறது, மேலும் மாற்று மதிப்புகளின் சரியான தன்மையை சரிபார்க்க சிறப்பு கையாளுபவர்களை இணைக்க முடியும். எடுத்துக்காட்டாக, SQL இன்ஜின் SQL குறியீட்டில் மாற்றப்பட்டுள்ள மதிப்புகளைச் சரிபார்த்து, java.sql.ஸ்டேட்மெண்ட் பொருளை வெளியீட்டாக வழங்குகிறது, அதே நேரத்தில் JSON செயலி JSON மாற்றீடுகளின் சரியான தன்மையைக் கண்காணித்து JsonNode ஐ வழங்குகிறது. சரம் வினவல் = "தேர்ந்தெடு * நபர் ப எங்கிருந்து ப." + சொத்து + " = '" + மதிப்பு + "'"; // was Statement query = SQL."""தேர்ந்தெடு * நபரிடமிருந்து p எங்கிருந்து p.\{property} = '\{value}'"""; // ஆனது
  • x86_64 மற்றும் AArch64 செயலிகளில் திசையன் வழிமுறைகளைப் பயன்படுத்தி செய்யப்படும் திசையன் கணக்கீடுகளுக்கான செயல்பாடுகளை வழங்கும் வெக்டர் API இன் ஏழாவது முன்னோட்டம் சேர்க்கப்பட்டுள்ளது மற்றும் பல மதிப்புகளுக்கு (SIMD) ஒரே நேரத்தில் செயல்பாடுகளை பயன்படுத்த அனுமதிக்கிறது. ஹாட்ஸ்பாட் ஜேஐடி கம்பைலரில் ஸ்கேலார் செயல்பாடுகளின் ஆட்டோ-வெக்டரைசேஷனுக்காக வழங்கப்பட்ட திறன்களைப் போலன்றி, புதிய ஏபிஐ இணையான தரவு செயலாக்கத்திற்கான வெக்டரைசேஷனை வெளிப்படையாகக் கட்டுப்படுத்துவதை சாத்தியமாக்குகிறது.
  • உங்கள் சொந்த இடைநிலை செயல்பாடுகளை வரையறுப்பதை ஆதரிக்கும் நீட்டிக்கப்பட்ட ஸ்ட்ரீம் API இன் பூர்வாங்க செயலாக்கம் சேர்க்கப்பட்டுள்ளது, இது ஏற்கனவே உள்ள உள்ளமைக்கப்பட்ட இடைநிலை செயல்பாடுகள் விரும்பிய தரவு மாற்றத்திற்கு போதுமானதாக இல்லாத சந்தர்ப்பங்களில் பயனுள்ளதாக இருக்கும். நேட்டிவ் ஹேண்ட்லர்கள் புதிய இடைநிலை செயல்பாட்டு ஸ்ட்ரீம்::கேதர்(கேதர்) ஐப் பயன்படுத்தி இணைக்கப்பட்டுள்ளனர், இது பயனர் குறிப்பிட்ட ஹேண்ட்லரைப் பயன்படுத்துவதன் மூலம் ஸ்ட்ரீம் கூறுகளை செயலாக்குகிறது. jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • கட்டமைக்கப்பட்ட ஒத்திசைவுக்கான சோதனை API இன் இரண்டாவது பதிப்பு சோதனைக்காக முன்மொழியப்பட்டது, இது வெவ்வேறு த்ரெட்களில் செயல்படுத்தப்படும் பல பணிகளை ஒரே தொகுதியாக செயலாக்குவதன் மூலம் பல-திரிக்கப்பட்ட பயன்பாடுகளின் வளர்ச்சியை எளிதாக்குகிறது.
  • மறைமுகமாக அறிவிக்கப்பட்ட வகுப்புகள் மற்றும் "முதன்மை" முறையின் பெயரிடப்படாத நிகழ்வுகளின் இரண்டாவது பூர்வாங்க செயலாக்கம் சேர்க்கப்பட்டது, இது பொது/நிலையான அறிவிப்புகள், வாதங்களின் வரிசையை அனுப்புதல் மற்றும் ஒரு வகுப்பு அறிவிப்புடன் தொடர்புடைய பிற நிறுவனங்கள். // பொது வகுப்பு HelloWorld {பொது நிலையான வெற்றிட முக்கிய(ஸ்ட்ரிங்[] args) { System.out.println("Hello world!"); } } // இப்போது நீங்கள் முக்கிய() { System.out.println("Hello, World!"); }
  • ஸ்கோப் செய்யப்பட்ட மதிப்புகளின் இரண்டாவது முன்னோட்டச் செயலாக்கத்தைச் சேர்த்தது, இது மாறாத தரவை த்ரெட்கள் முழுவதும் பகிர அனுமதிக்கிறது மற்றும் குழந்தைத் தொடரிழைகளுக்கு இடையே தரவு திறமையாகப் பரிமாறப்படுகிறது (மதிப்புகள் மரபுரிமையாக இருக்கும்). நூல்-உள்ளூர் மாறிகள் பொறிமுறையை மாற்றுவதற்காக ஸ்கோப் செய்யப்பட்ட மதிப்புகள் உருவாக்கப்பட்டு வருகின்றன, மேலும் அதிக எண்ணிக்கையிலான மெய்நிகர் நூல்களைப் பயன்படுத்தும் போது (ஆயிரக்கணக்கான அல்லது மில்லியன் கணக்கான நூல்கள்) மிகவும் திறமையானவை. ஸ்கோப் செய்யப்பட்ட மதிப்புகள் மற்றும் நூல்-உள்ளூர் மாறிகள் ஆகியவற்றுக்கு இடையேயான முக்கிய வேறுபாடு என்னவென்றால், முந்தையவை ஒரு முறை எழுதப்பட்டவை, எதிர்காலத்தில் மாற்ற முடியாது, மேலும் நூலின் செயல்பாட்டின் காலத்திற்கு மட்டுமே கிடைக்கும்.
  • பேரலல் குப்பை சேகரிப்பான் பெரிய அளவிலான பொருள்களுடன் பணிபுரியும் போது செயல்திறனை மேம்படுத்தியுள்ளது. ஒரு பொருளைத் தேடத் தொடங்கும் முன் தாமதத்தை 20% குறைக்க, பெரிய அளவிலான பொருள்களைக் கொண்ட சில சோதனைகளில் மேம்படுத்தல் சாத்தியமாக்கியது.

கூடுதலாக, JavaFX 22 வரைகலை இடைமுகத்துடன் பயன்பாடுகளை உருவாக்குவதற்கான தளத்திற்கு ஒரு புதுப்பிப்பை வெளியிடுவதை நீங்கள் கவனிக்கலாம்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்