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

ஆறு மாத வளர்ச்சிக்குப் பிறகு, ஆரக்கிள் வெளியிடப்பட்டது நடைமேடை ஜாவா எஸ்இ 14 (ஜாவா இயங்குதளம், நிலையான பதிப்பு 14), திறந்த மூல OpenJDK திட்டம் ஒரு குறிப்பு செயலாக்கமாகப் பயன்படுத்தப்படுகிறது. Java SE 14 ஜாவா இயங்குதளத்தின் முந்தைய வெளியீடுகளுடன் பின்தங்கிய இணக்கத்தன்மையை பராமரிக்கிறது; புதிய பதிப்பின் கீழ் தொடங்கப்படும் போது முன்னர் எழுதப்பட்ட அனைத்து ஜாவா திட்டங்களும் மாற்றங்கள் இல்லாமல் செயல்படும். Java SE 14 பில்ட்களை நிறுவத் தயார் (JDK, JRE மற்றும் சர்வர் JRE) தயார் Linux (x86_64), Windows மற்றும் macOS க்கு. OpenJDK திட்டத்தால் உருவாக்கப்பட்ட குறிப்பு செயலாக்கம் ஜாவா GPLv2 உரிமத்தின் கீழ் முழுமையாக திறந்த மூலமாக உள்ளது, GNU ClassPath விதிவிலக்குகள் வணிக தயாரிப்புகளுடன் மாறும் இணைப்பை அனுமதிக்கிறது.

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

Из புதுமைகள் ஜாவா முடியும் குறி:

  • சோதனை ஆதரவு சேர்க்கப்பட்டது மாதிரி பொருத்தம் "instanceof" ஆபரேட்டரில், சரிபார்க்கப்பட்ட மதிப்பை அணுக உள்ளூர் மாறியை உடனடியாக வரையறுக்க உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, நீங்கள் உடனடியாக "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" என்பதை "ஸ்ட்ரிங் s = (ஸ்ட்ரிங்) obj" என்று தெளிவாக வரையறுக்காமல் உடனடியாக எழுதலாம்.

    இருந்தது:

    என்றால் (குழுவின் பொருள்) {
    குழு குழு = (குழு) obj;
    var உள்ளீடுகள் = group.getEntries();
    }

    இப்போது நீங்கள் "குழு குழு = (குழு) obj" என்ற வரையறை இல்லாமல் செய்யலாம்:

    என்றால் (குழுக் குழுவின் பொருள்) {
    var உள்ளீடுகள் = group.getEntries();
    }

  • புதிய முக்கிய சொல்லுக்கான சோதனை ஆதரவு சேர்க்கப்பட்டது "சாதனை", இது வகுப்புகளை வரையறுப்பதற்கான ஒரு சிறிய படிவத்தை வழங்குகிறது, அதன் நடத்தை மாறாத புலங்களில் மட்டுமே தரவு சேமிக்கப்படும் சந்தர்ப்பங்களில் சமம்(), hashCode() மற்றும் toString() போன்ற பல்வேறு குறைந்த-நிலை முறைகளை வெளிப்படையாக வரையறுப்பதைத் தவிர்க்க உங்களை அனுமதிக்கிறது. சமம்(), hashCode() மற்றும் toString() முறைகளின் நிலையான செயலாக்கங்களை ஒரு வர்க்கம் பயன்படுத்தும் போது, ​​அவற்றின் வெளிப்படையான வரையறை இல்லாமல் செய்ய முடியும்:

    பொது பதிவு வங்கி பரிவர்த்தனை (உள்ளூர் தேதி,
    இரட்டை தொகை
    சர விளக்கம்) {}

    இந்த அறிவிப்பு, கன்ஸ்ட்ரக்டர் மற்றும் கெட்டர் முறைகளுக்கு கூடுதலாக சமம்(), ஹாஷ்கோட்() மற்றும் toString() முறைகளின் செயலாக்கங்களை தானாகவே சேர்க்கும்.

  • தரப்படுத்தப்பட்டது மற்றும் "ஸ்விட்ச்" வெளிப்பாடுகளின் புதிய வடிவத்திற்கான ஆதரவு முன்னிருப்பாக செயல்படுத்தப்படுகிறது, இது "பிரேக்" ஆபரேட்டரைக் குறிப்பிடத் தேவையில்லை, மீண்டும் மீண்டும் லேபிள்களை இணைக்க உங்களை அனுமதிக்கிறது மற்றும் ஒரு ஆபரேட்டரின் வடிவத்தில் மட்டுமல்ல, ஒரு வெளிப்பாடு.

    var log = மாறு (நிகழ்வு) {
    கேஸ் ப்ளே -> “பயனர் பிளே பட்டனைத் தூண்டியுள்ளார்”;
    வழக்கு நிறுத்து, இடைநிறுத்தம் -> "பயனருக்கு இடைவெளி தேவை";
    இயல்புநிலை -> {
    சரம் செய்தி = event.toString();
    LocalDateTime now = LocalDateTime.now();
    "தெரியாத நிகழ்வு" + செய்தி +
    » உள்நுழைந்துள்ளது » + இப்போது;
    }
    };

  • விரிவாக்கப்பட்ட சோதனை ஆதரவு உரை தொகுதிகள் - ப்ளாக்கில் உள்ள அசல் உரை வடிவமைப்பைப் பாதுகாக்காமல், எழுத்துப் பிழையைப் பயன்படுத்தாமல், மூலக் குறியீட்டில் பல வரி உரைத் தரவைச் சேர்க்க உங்களை அனுமதிக்கும் புதிய வடிவம் சரம் எழுத்துகள். தொகுதி மூன்று இரட்டை மேற்கோள்களால் கட்டமைக்கப்பட்டுள்ளது. ஜாவா 14 இல், டெக்ஸ்ட் பிளாக்ஸ் இப்போது எஸ்கேப் சீக்வென்ஸ் "\s" ஐ ஒரு இடத்தை வரையறுக்க மற்றும் "\" அடுத்த வரியுடன் இணைக்க ஆதரிக்கிறது (நீங்கள் மிக நீண்ட வரியை அச்சிட வேண்டியிருக்கும் போது புதிய வரிகளை புறக்கணித்து). உதாரணமாக, குறியீட்டிற்கு பதிலாக

    சரம் html = " » +
    "\n\t" + " » +
    "\n\t\t" + " \"ஜாவா 1 இங்கே உள்ளது!\" » +
    "\n\t" + " » +
    "\n" + " ";

    நீங்கள் குறிப்பிடலாம்:

    சரம் html = """


    »ஜாவா 1\
    இங்கே உள்ளது!

    """;

  • விதிவிலக்குகள் ஏற்படும் போது கண்டறியும் தகவல் உள்ளடக்கம் விரிவாக்கப்பட்டது பூஜ்ய சுட்டிக்காட்டி விதிவிலக்கு. முன்பு பிழை செய்தி வரி எண்ணை மட்டுமே குறிப்பிடுகிறது, இப்போது அது விதிவிலக்கை ஏற்படுத்திய முறை பற்றி விவரிக்கிறது. மேம்பட்ட கண்டறிதல்கள் தற்போது "-XX:+ShowCodeDetailsInExceptionMessages" கொடியுடன் தொடங்கப்படும் போது மட்டுமே இயக்கப்படும். எடுத்துக்காட்டாக, இந்தக் கொடியைக் குறிப்பிடும்போது, ​​வரியில் விதிவிலக்கு

    var பெயர் = user.getLocation().getCity().getName();

    ஒரு செய்தியை விளைவிக்கும்

    திரி "முக்கிய" java.lang இல் விதிவிலக்கு.NullPointerException: "Location.getCity()" ஐ அழைக்க முடியாது
    ஏனெனில் "User.getLocation()" இன் மதிப்பு பூஜ்யமாக உள்ளது
    NullPointerExample.main இல்(NullPointerExample.java:5):5)

    Location.getCity() முறை அழைக்கப்படவில்லை மற்றும் User.getLocation() பூஜ்யமாக திரும்பியது என்பதை இது தெளிவுபடுத்துகிறது.

  • செயல்படுத்தப்பட்டது jpackage பயன்பாட்டின் முன்னோட்டம், இது தன்னியக்கமான ஜாவா பயன்பாடுகளுக்கான தொகுப்புகளை உருவாக்க உங்களை அனுமதிக்கிறது. பயன்பாடானது JavaFX இலிருந்து javapackager ஐ அடிப்படையாகக் கொண்டது மற்றும் பல்வேறு தளங்களில் (Windows க்கு msi மற்றும் exe, macOS க்கு pkg மற்றும் dmg, லினக்ஸிற்கான deb மற்றும் rpm) வடிவங்களில் தொகுப்புகளை உருவாக்க உங்களை அனுமதிக்கிறது. தொகுப்புகளில் தேவையான அனைத்து சார்புகளும் அடங்கும்.
  • G1 குப்பை சேகரிப்பாளருக்கு சேர்க்கப்பட்டது கட்டிடக்கலையைப் பயன்படுத்தி பெரிய கணினிகளில் பணிபுரியும் பிரத்தியேகங்களை கணக்கில் எடுத்துக் கொள்ளும் ஒரு புதிய நினைவக ஒதுக்கீடு பொறிமுறை நுமா. புதிய நினைவக ஒதுக்கி "+XX:+UseNUMA" கொடியைப் பயன்படுத்தி இயக்கப்பட்டது மற்றும் NUMA கணினிகளில் செயல்திறனை கணிசமாக மேம்படுத்த முடியும்.
  • சேர்க்கப்பட்டது JFR (JDK ஃப்ளைட் ரெக்கார்டர்) நிகழ்வுகளை விமானத்தில் கண்காணிப்பதற்கான API, எடுத்துக்காட்டாக தொடர்ச்சியான கண்காணிப்பை ஒழுங்கமைப்பதற்கான.
  • சேர்க்கப்பட்டது jdk.nio.mapmode தொகுதி, இது புதிய முறைகளை (READ_ONLY_SYNC, WRITE_ONLY_SYNC) வழங்குகிறது.
  • செயல்படுத்தப்பட்டது புதிய MemorySegment, MemoryAddress மற்றும் MemoryLayout சுருக்கங்களைக் கையாளுவதன் மூலம் ஜாவா குவியல்களுக்கு வெளியே உள்ள நினைவகப் பகுதிகளை பாதுகாப்பாகவும் திறமையாகவும் அணுக ஜாவா பயன்பாடுகளை அனுமதிக்கும் வெளிநாட்டு-நினைவக அணுகல் API இன் முன்னோட்டம்.
  • அறிவித்தது எதிர்காலத்தில் இந்த போர்ட்களை அகற்றும் நோக்கத்துடன் Solaris OS மற்றும் SPARC செயலிகளுக்கான (Solaris/SPARC, Solaris/x64 மற்றும் Linux/SPARC) போர்ட்கள் நிறுத்தப்பட்டன. இந்த போர்ட்களை நிராகரிப்பது சோலாரிஸ் மற்றும் ஸ்பார்க்-குறிப்பிட்ட அம்சங்களைப் பராமரிப்பதில் நேரத்தை வீணாக்காமல், புதிய OpenJDK அம்சங்களின் வளர்ச்சியை துரிதப்படுத்த சமூகத்தை அனுமதிக்கும்.
  • நீக்கப்பட்டது CMS (Concurrent Mark Sweep) குப்பை சேகரிப்பான், இது இரண்டு ஆண்டுகளுக்கு முன்பு வழக்கற்றுப் போய்விட்டதாகக் குறிக்கப்பட்டு, பராமரிக்கப்படாமல் இருந்தது (CMS ஆனது G1 குப்பை சேகரிப்பாளரால் வெகு காலத்திற்கு முன்பே மாற்றப்பட்டது). தவிர, அறிவித்தது ParallelScavenge மற்றும் SerialOld குப்பை சேகரிப்பு அல்காரிதம்களின் கலவையின் பயன்பாடு நிறுத்தப்பட்டது ("-XX:+UseParallelGC -XX:-UseParallelOldGC" விருப்பங்களுடன் இயக்கப்படும்).
  • ZGC (Z குப்பை சேகரிப்பான்) குப்பை சேகரிப்பாளருக்கான பரிசோதனை ஆதரவு macOS மற்றும் Windows இயங்குதளங்களில் வழங்கப்பட்டுள்ளது (முன்பு Linux இல் மட்டுமே ஆதரிக்கப்பட்டது). ZGC செயலற்ற பயன்முறையில் இயங்குகிறது, குப்பை சேகரிப்பின் தாமதத்தை முடிந்தவரை குறைக்கிறது (ZGC ஐப் பயன்படுத்தும் போது நிறுத்த நேரம் 10 ms ஐ விட அதிகமாக இல்லை.) மற்றும் பல நூறு மெகாபைட்கள் முதல் பல டெராபைட்கள் வரையிலான சிறிய மற்றும் பெரிய குவியல்களுடன் வேலை செய்ய முடியும்.
  • நீக்கப்பட்டது Pack200 அல்காரிதத்தைப் பயன்படுத்தி JAR கோப்புகளை சுருக்குவதற்கான கருவித்தொகுப்பு மற்றும் API.

ஆதாரம்: opennet.ru

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