ஜாவா எஸ்இ 17 வெளியீடு

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

Java SE 17 ஆனது நீண்ட கால ஆதரவு (LTS) வெளியீடாக வகைப்படுத்தப்பட்டுள்ளது, இது 2029 வரை தொடர்ந்து புதுப்பிப்புகளைப் பெறும். முந்தைய ஜாவா 16 மைல்ஸ்டோன் வெளியீட்டிற்கான புதுப்பிப்புகள் நிறுத்தப்பட்டன. Java 11 இன் முந்தைய LTS கிளை 2026 வரை ஆதரிக்கப்படும். அடுத்த LTS வெளியீடு செப்டம்பர் 2024 இல் திட்டமிடப்பட்டுள்ளது. ஜாவா 10 வெளியீட்டில் தொடங்கி, திட்டம் ஒரு புதிய மேம்பாட்டு செயல்முறைக்கு மாறியது, இது புதிய வெளியீடுகளை உருவாக்குவதற்கான குறுகிய சுழற்சியைக் குறிக்கிறது. தொடர்ந்து புதுப்பிக்கப்பட்ட முதன்மைக் கிளையில் புதிய செயல்பாடு இப்போது உருவாக்கப்பட்டுள்ளது, இதில் ஆயத்த மாற்றங்கள் மற்றும் புதிய வெளியீடுகளை நிலைப்படுத்த ஒவ்வொரு ஆறு மாதங்களுக்கும் கிளைகள் கிளைகள் செய்யப்படுகின்றன.

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

  • "சுவிட்ச்" வெளிப்பாடுகளில் மாதிரிப் பொருத்தத்தின் சோதனைச் செயலாக்கம் முன்மொழியப்பட்டது, இது "கேஸ்" லேபிள்களில் சரியான மதிப்புகளைப் பயன்படுத்த அனுமதிக்காது, ஆனால் ஒரே நேரத்தில் தொடர்ச்சியான மதிப்புகளை உள்ளடக்கிய நெகிழ்வான வார்ப்புருக்கள், இதற்கு முன்பு சிக்கலானதைப் பயன்படுத்த வேண்டியிருந்தது. "if... else" வெளிப்பாடுகளின் சங்கிலிகள். கூடுதலாக, "சுவிட்ச்" NULL மதிப்புகளைக் கையாளும் திறனைக் கொண்டுள்ளது. பொருள் o = 123L; சரம் வடிவமைக்கப்பட்டது = மாறு (o) {case Integer i -> String.format("int %d", i); வழக்கு நீண்ட l -> String.format("நீண்ட %d", l); வழக்கு இரட்டை d -> String.format("இரட்டை %f", d); வழக்கு சரம் s -> String.format("ஸ்ட்ரிங் %s", s); இயல்புநிலை -> o.toString(); };
  • சீல் செய்யப்பட்ட வகுப்புகள் மற்றும் இடைமுகங்களுக்கான நிலைப்படுத்தப்பட்ட ஆதரவு, பிற வகுப்புகள் மற்றும் இடைமுகங்களால் செயல்படுத்தப்படுவதை, நீட்டிக்க அல்லது மேலெழுதப் பயன்படுத்த முடியாது. சீல் செய்யப்பட்ட வகுப்புகள், நீட்டிப்புக்கு அனுமதிக்கப்பட்ட துணைப்பிரிவுகளை வெளிப்படையாகப் பட்டியலிடுவதன் அடிப்படையில், அணுகல் மாற்றிகளைக் காட்டிலும் சூப்பர் கிளாஸின் பயன்பாட்டைக் கட்டுப்படுத்துவதற்கான அதிக அறிவிப்பு வழியையும் வழங்குகிறது. தொகுப்பு com.example.geometry; பொது சீல் செய்யப்பட்ட வகுப்பின் வடிவம் com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.சதுரம் {…}
  • x86_64 மற்றும் AArch64 செயலிகளில் திசையன் வழிமுறைகளைப் பயன்படுத்தி செயல்படுத்தப்படும் திசையன் கணக்கீடுகளுக்கான செயல்பாடுகளை வழங்கும் வெக்டர் ஏபிஐயின் இரண்டாவது முன்னோட்டம் முன்மொழியப்பட்டது மற்றும் பல மதிப்புகளுக்கு (SIMD) ஒரே நேரத்தில் செயல்பாடுகளைப் பயன்படுத்த அனுமதிக்கிறது. ஹாட்ஸ்பாட் ஜேஐடி கம்பைலரில் ஸ்கேலார் செயல்பாடுகளின் ஆட்டோ-வெக்டரைசேஷனுக்காக வழங்கப்பட்ட திறன்களைப் போலன்றி, புதிய ஏபிஐ இணையான தரவு செயலாக்கத்திற்கான வெக்டரைசேஷனை வெளிப்படையாகக் கட்டுப்படுத்துவதை சாத்தியமாக்குகிறது.
  • வெளிநாட்டு செயல்பாடு & நினைவக API இன் முன்னோட்டம் சேர்க்கப்பட்டது, இது Java இயக்க நேரத்திற்கு வெளியே குறியீடு மற்றும் தரவுகளுடன் தொடர்பு கொள்ள பயன்பாடுகளை அனுமதிக்கிறது. புதிய API ஆனது JVM அல்லாத செயல்பாடுகளை திறமையாக அழைக்கவும் JVM அல்லாத நினைவகத்தை அணுகவும் உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, JNI ஐப் பயன்படுத்தாமல் வெளிப்புறப் பகிரப்பட்ட நூலகங்களிலிருந்து செயல்பாடுகளை அழைக்கலாம் மற்றும் செயல்முறைத் தரவை அணுகலாம்.
  • ஜாவா 2டி ஏபிஐயை இயக்கும் மேகோஸ் ரெண்டரிங் எஞ்சின், ஸ்விங் ஏபிஐயை இயக்குகிறது, இது மெட்டல் கிராபிக்ஸ் ஏபிஐயைப் பயன்படுத்துவதற்கு மாற்றியமைக்கப்பட்டுள்ளது. MacOS இயங்குதளமானது இயல்புநிலையாக OpenGL ஐத் தொடர்ந்து பயன்படுத்துகிறது, மேலும் Metal ஆதரவை இயக்குவதற்கு "-Dsun.java2d.metal=true" ஐ அமைத்து குறைந்தபட்சம் macOS 10.14.xஐ இயக்க வேண்டும்.
  • macOS/AArch64 இயங்குதளத்திற்கான போர்ட் சேர்க்கப்பட்டது (புதிய Apple M1 சில்லுகளை அடிப்படையாகக் கொண்ட ஆப்பிள் கணினிகள்). போர்ட்டின் சிறப்பு அம்சம் W^X (Write XOR Execute) நினைவக பாதுகாப்பு பொறிமுறைக்கான ஆதரவாகும், இதில் நினைவக பக்கங்களை எழுதுவதற்கும் செயல்படுத்துவதற்கும் ஒரே நேரத்தில் அணுக முடியாது. (குறியீட்டை எழுதுவது முடக்கப்பட்ட பின்னரே செயல்படுத்த முடியும், மேலும் நினைவகப் பக்கத்தில் எழுதுவது இயக்கத்தை முடக்கிய பின்னரே சாத்தியமாகும்).
  • ஃப்ளோட்டிங் பாயின்ட் எக்ஸ்ப்ரெஷன்களுக்கு ஸ்டிரிக்ட்எஃப்பி செமாண்டிக்ஸ் மட்டுமே பயன்படுத்தப்படுகிறது. ஜாவா 1.2 வெளியானதிலிருந்து "இயல்புநிலை" சொற்பொருளுக்கான ஆதரவு நிறுத்தப்பட்டது, இதில் மிகவும் பழைய x87 கணித கோப்ராசசர்களைக் கொண்ட கணினிகளில் பணிபுரிவதற்கான எளிமைப்படுத்தல்கள் அடங்கும் (SSE2 வழிமுறைகளின் வருகைக்குப் பிறகு, கூடுதல் சொற்பொருள்களின் தேவை மறைந்தது).
  • சூடோராண்டம் எண் ஜெனரேட்டர்களுக்கு புதிய வகையான இடைமுகங்கள் செயல்படுத்தப்பட்டுள்ளன, மேலும் சீரற்ற எண்களின் சிறந்த தலைமுறைக்கு கூடுதல் வழிமுறைகள் செயல்படுத்தப்பட்டுள்ளன. போலி எண்களை உருவாக்குவதற்கான அல்காரிதத்தை தேர்வு செய்வதற்கான வாய்ப்பு பயன்பாடுகளுக்கு வழங்கப்படுகிறது. சீரற்ற பொருள் ஸ்ட்ரீம்களை உருவாக்குவதற்கான மேம்படுத்தப்பட்ட ஆதரவு.
  • sun.misc.Unsafe போன்ற முக்கியமான APIகளைத் தவிர்த்து, அனைத்து JDK இன்டர்னல்களின் கண்டிப்பான இணைத்தல். உள் வகுப்புகள், முறைகள் மற்றும் புலங்களை அணுகுவதற்கான குறியீட்டிலிருந்து முயற்சிகளை கடுமையான இணைத்தல் தடுக்கிறது. முன்னதாக, "--illegal-access=permit" விருப்பத்தைப் பயன்படுத்தி கடுமையான என்காப்சுலேஷன் பயன்முறையை முடக்கலாம், ஆனால் இது இப்போது நிறுத்தப்பட்டுள்ளது. அக வகுப்புகள், முறைகள் மற்றும் புலங்களுக்கான அணுகல் தேவைப்படும் பயன்பாடுகள் --add-opens விருப்பம் அல்லது மேனிஃபெஸ்ட் கோப்பில் உள்ள Add-Opens பண்புக்கூறைப் பயன்படுத்தி அவற்றை வெளிப்படையாக வரையறுக்க வேண்டும்.
  • குறிப்பிட்ட டீரியலைசேஷன் செயல்பாடுகளின் அடிப்படையில் சூழல் உணர்திறன் மற்றும் மாறும் வகையில் தேர்ந்தெடுக்கப்பட்ட தரவு டீரியலைசேஷன் வடிகட்டிகளை வரையறுக்கும் திறன் பயன்பாடுகளுக்கு வழங்கப்படுகிறது. குறிப்பிடப்பட்ட வடிப்பான்கள் முழு மெய்நிகர் இயந்திரத்திற்கும் (JVM-வைட்) பொருந்தும், அதாவது. பயன்பாட்டை மட்டுமல்ல, பயன்பாட்டில் பயன்படுத்தப்படும் மூன்றாம் தரப்பு நூலகங்களையும் உள்ளடக்கியது.
  • உயர் DPI திரைகளில் UIஐ மேம்படுத்த பெரிய ஐகான்களை ஏற்றுவதற்கு javax.swing.filechooser.FileSystemView.getSystemIcon முறையை ஸ்விங் சேர்த்துள்ளது.
  • java.net.DatagramSocket API ஆனது தனியான java.net.MulticastSocket API இன் தேவையின்றி மல்டிகாஸ்ட் குழுக்களுடன் இணைப்பதற்கான ஆதரவை வழங்குகிறது.
  • IGV (Ideal Graph Visualizer) பயன்பாடு மேம்படுத்தப்பட்டுள்ளது, இது ஹாட்ஸ்பாட் VM C2 JIT தொகுப்பியில் இடைநிலை குறியீடு பிரதிநிதித்துவத்தின் ஊடாடும் காட்சிப்படுத்தலை வழங்குகிறது.
  • JavaDoc இல், javac கம்பைலருடன் ஒப்புமை மூலம், ஒரு பிழை வெளிப்படும் போது, ​​மூலக் கோப்பில் உள்ள பிரச்சனைக்குரிய வரியின் எண்ணிக்கை மற்றும் பிழையின் இருப்பிடம் ஆகியவை இப்போது குறிப்பிடப்படுகின்றன.
  • சிஸ்டம் கேரக்டர் என்கோடிங்கின் பெயரை பிரதிபலிக்கும் வகையில், native.encoding பண்பு சேர்க்கப்பட்டது (UTF-8, koi8-r, cp1251, முதலியன).
  • java.time.InstantSource இடைமுகம் சேர்க்கப்பட்டுள்ளது, இது நேர மண்டலத்தைக் குறிப்பிடாமல் நேரத்தைக் கையாள அனுமதிக்கிறது.
  • ஹெக்ஸாடெசிமல் பிரதிநிதித்துவத்திற்கு மாற்றுவதற்கு java.util.HexFormat API சேர்க்கப்பட்டது மற்றும் நேர்மாறாகவும்.
  • கம்பைலரில் ஒரு பிளாக்ஹோல் பயன்முறை சேர்க்கப்பட்டுள்ளது, இது டெட்-கோட் நீக்குதல் செயல்பாடுகளை முடக்குகிறது, இது செயல்திறன் சோதனைகளை நடத்தும்போது பயன்படுத்தப்படலாம்.
  • ஒத்திசைவற்ற பயன்முறையில் பதிவுகளை பதிவு செய்ய இயக்க நேரத்தில் “-Xlog:async” விருப்பம் சேர்க்கப்பட்டது.
  • பாதுகாப்பான இணைப்புகளை நிறுவும் போது, ​​TLS 1.3 இயல்பாகவே இயக்கப்படும் (முன்பு TLS 1.2 பயன்படுத்தப்பட்டது).
  • உலாவியில் ஜாவா அப்ளிகேஷன்களை இயக்கப் பயன்படுத்தப்பட்ட, முன்னர் அறிவிக்கப்பட்ட வழக்கற்றுப் போன ஆப்லெட் ஏபிஐ (java.applet.Applet*, javax.swing.JApplet), அகற்றப்படுவதற்கான ஸ்லேட்டட் வகைக்கு நகர்த்தப்பட்டது (ஆதரவு முடிவடைந்த பிறகு பொருத்தத்தை இழந்தது உலாவிகளுக்கான ஜாவா செருகுநிரலுக்கு).
  • பாதுகாப்பு மேலாளர், நீண்ட காலமாக அதன் பொருத்தத்தை இழந்து, உலாவிச் செருகுநிரலுக்கான ஆதரவு முடிந்த பிறகு உரிமை கோரப்படாததாக மாறியது, அகற்றுவதற்கு திட்டமிடப்பட்டவர்களின் வகைக்கு மாற்றப்பட்டது.
  • RMI ஆக்டிவேஷன் மெக்கானிசம் அகற்றப்பட்டது, இது காலாவதியானது, ஜாவா 8 இல் ஒரு விருப்பத்தின் வகைக்கு தள்ளப்பட்டது மற்றும் நவீன நடைமுறையில் கிட்டத்தட்ட பயன்படுத்தப்படவில்லை.
  • ஹாட்ஸ்பாட் ஜேவிஎம்மிற்கான ஜாவா குறியீட்டை டைனமிக் தொகுக்க JITயை ஆதரிக்கும் ஒரு சோதனை கம்பைலர், அத்துடன் மெய்நிகர் இயந்திரத்தைத் தொடங்குவதற்கு முன், வகுப்புகளின் முன்கூட்டிய தொகுத்தல் முறை (AOT, முன்கூட்டியே) , SDK இலிருந்து அகற்றப்பட்டது. கம்பைலர் ஜாவாவில் எழுதப்பட்டது மற்றும் கிரால் திட்டத்தின் வேலையின் அடிப்படையில் உருவாக்கப்பட்டது. கம்பைலர் பராமரிப்புக்கு நிறைய உழைப்பு தேவைப்படுகிறது என்பது குறிப்பிடத்தக்கது, இது டெவலப்பர்களிடமிருந்து தேவை இல்லாதபோது நியாயப்படுத்தப்படாது.

ஆதாரம்: opennet.ru

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