Java SE 14 laidiens

Pēc seÅ”u mēneÅ”u izstrādes Oracle atbrÄ«vots platforma Java SE 14 (Java platforma, Standard Edition 14), atvērtā pirmkoda OpenJDK projekts tiek izmantots kā atsauces ievieÅ”ana. Java SE 14 saglabā atpakaļejoÅ”u saderÄ«bu ar iepriekŔējiem Java platformas laidieniem; visi iepriekÅ” rakstÄ«tie Java projekti darbosies bez izmaiņām, kad tie tiks palaisti jaunajā versijā. InstalēŔanai gatavas Java SE 14 versijas (JDK, JRE un Server JRE) sagatavots operētājsistēmai Linux (x86_64), Windows un macOS. OpenJDK projekta izstrādātā atsauces realizācija Java 14 ir pilnÄ«bā atvērts avots saskaņā ar GPLv2 licenci, ar GNU ClassPath izņēmumiem, kas ļauj dinamiski izveidot savienojumu ar komerciāliem produktiem.

Java SE 14 ir klasificēts kā vispārējs atbalsta laidiens, un tas turpinās saņemt atjauninājumus lÄ«dz nākamajam laidienam. Ilgtermiņa atbalsta (LTS) filiālei vajadzētu bÅ«t Java SE 11, kas turpinās saņemt atjauninājumus lÄ«dz 2026. gadam. IepriekŔējā Java 8 LTS filiāle tiks atbalstÄ«ta lÄ«dz 2020. gada decembrim. Nākamais LTS izlaidums ir paredzēts 2021. gada septembrÄ«. Atgādinām, ka, sākot ar Java 10 izlaiÅ”anu, projekts pārgāja uz jaunu izstrādes procesu, kas nozÄ«mē Ä«sāku ciklu jaunu laidienu veidoÅ”anai. Jauna funkcionalitāte tagad ir izstrādāta vienā pastāvÄ«gi atjauninātajā galvenajā filiālē, kas ietver gatavas izmaiņas un no kuras filiāles tiek atzarotas ik pēc seÅ”iem mēneÅ”iem, lai stabilizētu jaunus izdevumus.

No jauninājumiem Java 14 viens var Atzīmēt:

  • Pievienots eksperimentāls atbalsts modeļu saskaņoÅ”ana operatorā ā€œinstanceofā€, kas ļauj nekavējoties definēt vietējo mainÄ«go, lai piekļūtu pārbaudÄ«tajai vērtÄ«bai. Piemēram, varat uzreiz uzrakstÄ«t ā€œif (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}ā€, nepārprotami nedefinējot ā€œString s = (String) objā€.

    Bija:

    if (Obj instanceof Group) {
    Grupas grupa = (Grupa)obj;
    var ieraksti = group.getEntries();
    }

    Tagad jÅ«s varat iztikt bez definÄ«cijas ā€œGrupa grupa = (Grupa) objā€:

    if (Obj instanceof Group group) {
    var ieraksti = group.getEntries();
    }

  • Pievienots eksperimentāls atbalsts jaunajam atslēgvārdam "ieraksts", kas nodroÅ”ina kompaktu formu klaÅ”u definēŔanai, ļaujot izvairÄ«ties no dažādu zema lÄ«meņa metožu, piemēram, equals(), hashCode() un toString() nepārprotamas definēŔanas gadÄ«jumos, kad dati tiek glabāti tikai laukos, kuru uzvedÄ«ba nemainās. Ja klase izmanto standarta vienāds(), hashCode() un toString() metožu implementācijas, tā var iztikt bez to skaidras definÄ«cijas:

    publisks ieraksts BankTransaction (vietējais datums,
    dubultā summa
    Virknes apraksts) {}

    Šī deklarācija papildus konstruktora un ieguvēja metodēm automātiski pievienos arī vienāds(), hashCode() un toString() metožu implementācijas.

  • Standartizēts un pēc noklusējuma ir iespējots atbalsts jaunai "switch" izteiksmju formai, kurai nav nepiecieÅ”ams "break" operators, kas ļauj apvienot atkārtotas etiÄ·etes un ļauj tās izmantot ne tikai operatora veidā, bet arÄ« kā izteiksmi.

    var log = slēdzis (notikums) {
    gadÄ«jums PLAY -> ā€œLietotājs ir aktivizējis atskaņoÅ”anas poguā€;
    gadÄ«jums STOP, PAUSE -> ā€œLietotājai nepiecieÅ”ams pārtraukumsā€;
    noklusējums -> {
    String ziņojums = event.toString();
    VietējaisDatumsLaiks tagad = VietējaisDatumsLaiks.tagad();
    rezultāts "Nezināms notikums" + ziņojums +
    Ā» pieteicies Ā» + tagad;
    }
    };

  • Eksperimentālais atbalsts ir paplaÅ”ināts teksta bloki — jauna virknes literāļu forma, kas ļauj iekļaut vairāku rindu teksta datus avota kodā, neizmantojot atsoļa rakstzÄ«mes un saglabājot sākotnējo teksta formatējumu blokā. Bloks ir ietverts trÄ«s pēdiņās. Java 14 teksta bloki tagad atbalsta atsoļa secÄ«bu "\s" vienas atstarpes definēŔanai un "\" savienoÅ”anai ar nākamo rindu (ignorējot rindiņu padeves, ja ir jāizvada ļoti gara virkne). Piemēram, koda vietā

    Virkne html = " Ā»+
    "\n\t" + " Ā»+
    "\n\t\t" + " \"Java 1 ir klāt!\" Ā»+
    "\n\t" + " Ā»+
    "\n" + " ";

    jūs varat norādīt:

    Virkne html = """


    Ā»Java 1\
    ir Ŕeit!

    """;

  • Diagnostikas informācijas saturs izņēmumu gadÄ«jumā ir paplaÅ”ināts. NullPointerExceptionLai gan iepriekÅ” kļūdas ziņojumā bija atsauce tikai uz rindas numuru, tagad tajā ir norādÄ«ta metode, kas izraisÄ«ja izņēmumu. PaplaÅ”inātā diagnostika paÅ”laik ir iespējota tikai tad, ja tiek izmantots karodziņŔ "-XX:+ShowCodeDetailsInExceptionMessages". Piemēram, ja ir norādÄ«ts Å”is karodziņŔ, izņēmums rindā

    mainīgā nosaukums = lietotājs.getLocation().getCity().getName();

    rezultātā tiks parādīts ziņojums

    Izņēmums pavedienā "main" java.lang.NullPointerException: Nevar izsaukt "Location.getCity()"
    jo "User.getLocation()" atgrieztā vērtība ir nulle
    vietnē NullPointerExample.main(NullPointerExample.java:5):5)

    Kas ļauj mums saprast, ka Location.getCity() metode netika izsaukta, un User.getLocation() atgrieza null vērtību.

  • ÄŖstenots Jpackage utilÄ«tas provizoriskā versija, kas ļauj veidot pakotnes patstāvÄ«gām Java lietojumprogrammām. Balstoties uz JavaFX javapackager, tā izveido pakotnes vietējos formātos dažādām platformām (.msi un .exe operētājsistēmai Windows, .pkg un .dmg operētājsistēmai macOS, .deb un .rpm operētājsistēmai Linux). Pakotnēs ir iekļautas visas nepiecieÅ”amās atkarÄ«bas.
  • G1 atkritumu savācējā piebilda jauns atmiņas sadales mehānisms, kas ņem vērā darba specifiku lielās sistēmās, izmantojot arhitektÅ«ru NUMAJaunais atmiņas pieŔķīrējs tiek iespējots, izmantojot karodziņu "+XX:+UseNUMA", un tas var ievērojami uzlabot veiktspēju NUMA sistēmās.
  • Pievienots API JFR (JDK Flight Recorder) notikumu izsekoÅ”anai tieÅ”raidē, piemēram, nepārtrauktas uzraudzÄ«bas organizēŔanai.
  • Pievienots jdk.nio.mapmode modulis, kas nodroÅ”ina jaunus režīmus (READ_ONLY_SYNC, WRITE_ONLY_SYNC) kartētu baitu buferu (MappedByteBuffer) izveidei, atsaucoties uz nepastāvÄ«go atmiņu (NVM).
  • ÄŖstenots Ārējās atmiņas piekļuves API provizoriskā versija, kas ļauj Java lietojumprogrammām droÅ”i un efektÄ«vi piekļūt atmiņas reÄ£ioniem ārpus Java kaudzes, manipulējot ar jaunajām abstrakcijām MemorySegment, MemoryAddress un MemoryLayout.
  • Paziņots NovecojuÅ”i Solaris OS un SPARC procesoriem (Solaris/SPARC, Solaris/x64 un Linux/SPARC) paredzētie porti ar nolÅ«ku nākotnē tos noņemt. Å o portu novecoÅ”ana ļaus kopienai paātrināt jaunu OpenJDK funkciju izstrādi, netērējot laiku Solaris un SPARC specifisko funkciju atbalstam.
  • Izdzēsts CMS (Concurrent Mark Sweep) atkritumu savācējs, kas tika novecojis pirms diviem gadiem un netika uzturēts (CMS jau sen ir aizstāts ar G1 atkritumu savācēju). Turklāt, paziņoja ParallelScavenge un SerialOld atkritumu savākÅ”anas algoritmu kombinācijas izmantoÅ”ana ir novecojusi (palaist ar opcijām "-XX:+UseParallelGC -XX:-UseParallelOldGC").
  • macOS un Windows ir pievienots eksperimentāls atbalsts ZGC (Z Garbage Collector) atkritumu savācējam (iepriekÅ” tas tika atbalstÄ«ts tikai Linux). ZGC darbojas pasÄ«vā režīmā, pēc iespējas samazinot atkritumu savākÅ”anas aizkaves (apstāŔanās laiks, izmantojot ZGC, nepārsniedz 10 ms), un var apstrādāt gan mazus, gan lielus kaudzes apjomus, sākot no vairākiem simtiem megabaitu lÄ«dz daudziem terabaitiem.
  • Noņemts RÄ«ki un API JAR failu saspieÅ”anai, izmantojot Pack200 algoritmu.

Avots: opennet.ru

Iegādājieties uzticamu mitināŔanu vietnēm ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa vietņu mitināŔanu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster