Java SE 15 útgáfa

Eftir sex mánaða þróun, Oracle sleppt pallur JavaSE 15 (Java Platform, Standard Edition 15), opinn uppspretta OpenJDK verkefnið er notað sem viðmiðunarútfærslu. Java SE 15 heldur afturábak samhæfni við fyrri útgáfur af Java pallinum; öll áður skrifuð Java verkefni munu virka án breytinga þegar þau eru hleypt af stokkunum undir nýju útgáfunni. Tilbúnar til uppsetningar Java SE 15 smíðar (JDK, JRE og Server JRE) undirbúinn fyrir Linux (x86_64), Windows og macOS. Tilvísunarútfærsla þróuð af OpenJDK verkefninu Java 15 er að fullu opinn uppspretta undir GPLv2 leyfinu, með GNU ClassPath undantekningum sem leyfa kraftmikla tengingu við auglýsingavörur.

Java SE 15 er flokkuð sem almenn stuðningsútgáfa og mun halda áfram að fá uppfærslur fram að næstu útgáfu. Útibúið fyrir langtímastuðning (LTS) ætti að vera Java SE 11, sem mun halda áfram að fá uppfærslur til 2026. Fyrri LTS útibú Java 8 verður stutt til desember 2020. Næsta LTS útgáfa er áætluð í september 2021. Við skulum minna þig á að frá og með útgáfu Java 10 skipti verkefnið yfir í nýtt þróunarferli, sem gefur til kynna styttri lotu fyrir myndun nýrra útgáfur. Ný virkni er nú þróuð í einni stöðugt uppfærðri aðalútibúi, sem felur í sér tilbúnar breytingar og þaðan er útibúum greint á sex mánaða fresti til að koma á stöðugleika í nýjum útgáfum.

Af nýjungar Java 15 maður getur merkja:

  • Innbyggð stuðningur við EdDSA (Edwards-Curve Digital Signature Algorithm) reiknirit til að búa til stafræna undirskrift RFC 8032). Fyrirhuguð EdDSA útfærsla er ekki háð vélbúnaðarpöllum, er vernduð fyrir árásum á hliðarrásir (stöðugur tími allra útreikninga er tryggður) og er hraðari í frammistöðu en núverandi ECDSA útfærsla skrifuð á C tungumáli, með sama verndarstigi. Til dæmis, EdDSA sem notar sporöskjulaga feril með 126 bita lykli sýnir svipaða frammistöðu og ECDSA með secp256r1 sporöskjulaga feril og 128 bita lykli.
  • Bætt við tilraunastuðningur fyrir lokaða flokka og viðmót, sem ekki er hægt að nota af öðrum flokkum og viðmótum til að erfa, framlengja eða hnekkja framkvæmdinni. Lokaðir flokkar veita einnig yfirlýsandi leið til að takmarka notkun ofurflokks en aðgangsbreytingar, byggt á því að skrá sérstaklega undirflokka sem leyfilegt er að framlengja.

    pakki com.example.geometry;

    opinber innsigluð flokki Form
    leyfir com.example.polar.Circle,
    com.example.quad.Retangle,
    com.example.quad.simple.Square {…}

  • Bætt við stuðningur við falda flokka sem ekki er hægt að nota beint af bætikóða annarra flokka. Lykiltilgangur falinna flokka er að nota í ramma sem búa til flokka á virkan hátt á keyrslutíma og nota þá óbeint, í gegnum speglun. Slíkir flokkar hafa venjulega takmarkaðan líftíma, þannig að viðhalda þeim fyrir aðgang frá kyrrstöðu mynduðum flokkum er ekki réttlætanlegt og mun aðeins leiða til aukinnar minnisnotkunar. Faldir flokkar útiloka einnig þörfina fyrir óstöðluðu API sun.misc.Unsafe::defineAnonymousClass, sem áætlað er að verði fjarlægt í framtíðinni.
  • ZGC (Z Garbage Collector) sorpið hefur verið stöðugt og er viðurkennt sem tilbúið til almennrar notkunar. ZGC starfar í óvirkri stillingu, lágmarkar leynd vegna sorpsöfnunar eins mikið og mögulegt er (stöðvunartími þegar ZGC er notaður fer ekki yfir 10 ms.) og getur unnið með bæði litla og risastóra hrúga, allt frá nokkrum hundruðum megabæti til margra terabæta.
  • Stöðugt og fundið tilbúið til almennrar notkunar
    rusla safnari Shenandoah, vinna með lágmarkshléum (Low-Pause-Time Garbage Collector). Shenandoah var þróað af Red Hat og er áberandi fyrir notkun þess á reiknirit sem dregur úr biðtíma meðan á sorphirðu stendur með því að keyra hreinsun samhliða keyrslu Java forrita. Stærð seinkana sem sorphirðumaðurinn kynnir er fyrirsjáanleg og fer ekki eftir stærð haugsins, þ.e. fyrir hrúga upp á 200 MB og 200 GB verða tafirnar eins (ekki koma út yfir 50 ms og venjulega innan 10 ms);

  • Stuðningur hefur verið stöðugur og kynntur í tungumálinu textablokkir - nýtt form strengjabókstafa sem gerir þér kleift að innihalda margra lína textagögn í frumkóðann án þess að nota stafsleppa og varðveita upprunalega textasniðið í reitnum. Kubburinn er rammaður inn af þremur tvöföldum gæsalöppum.

    Til dæmis, í stað kóða

    Strengur html = " » +
    "\n\t" + " » +
    "\n\t\t" + " \"Java 1 er hér!\" » +
    "\n\t" + " » +
    "\n" + " ";

    þú getur tilgreint:

    String html = """


    »Java 1\
    er hér!

    """;

  • Endurhannað Eldra DatagramSocket API. Gömlu útfærslunum af java.net.DatagramSocket og java.net.MulticastSocket hefur verið skipt út fyrir nútímalega útfærslu sem er auðveldara að kemba og viðhalda, og er einnig samhæft við sýndarstrauma sem þróaðir eru innan verkefnisins Loom. Ef um hugsanlegt ósamrýmanleika er að ræða við núverandi kóða hefur gamla útfærslan ekki verið fjarlægð og hægt er að virkja hana með því að nota jdk.net.usePlainDatagramSocketImpl valkostinn.
  • Önnur tilraunaútfærsla lögð til mynstursamsvörun í „instanceof“ rekstraraðilanum, sem gerir þér kleift að skilgreina staðbundna breytu strax til að fá aðgang að merktu gildinu. Til dæmis geturðu skrifað strax “if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}” án þess að skilgreina sérstaklega “String s = (String) obj”.

    Það var:

    if (obj tilvik hóps) {
    Hópur hópur = (Hóp)obj;
    var entries = group.getEntries();
    }

    Nú geturðu verið án skilgreiningarinnar „Group group = (Group) obj“:

    if (obj dæmi af hóphópi) {
    var entries = group.getEntries();
    }

  • Lagt til önnur tilraunaútfærsla á leitarorði "skrá", sem veitir þétt form til að skilgreina flokka, sem gerir þér kleift að forðast að skilgreina beinlínis ýmsar lágstigsaðferðir eins og equals(), hashCode() og toString() í þeim tilvikum þar sem gögn eru aðeins geymd í sviðum þar sem hegðun þeirra breytist ekki. Þegar flokkur notar staðlaðar útfærslur á equals(), hashCode() og toString() aðferðunum, getur hann verið án skýrrar skilgreiningar þeirra:

    opinber skrá bankaviðskipti(LocalDate dagsetning,
    tvöfalda upphæð
    Strengjalýsing) {}

    Þessi yfirlýsing mun sjálfkrafa bæta við útfærslum á equals(), hashCode() og toString() aðferðunum til viðbótar við smíða- og getteraðferðirnar.

  • Lagt til önnur sýnishorn af Foreign-Memory Access API, sem gerir Java forritum kleift að fá öruggan og skilvirkan aðgang að minnissvæðum utan Java hrúgunnar með því að vinna með nýju MemorySegment, MemoryAddress og MemoryLayout útdrætti.
  • Öryrkjar og úrelti hagræðingartækni með hlutdrægri læsingu sem notuð var í HotSpot JVM til að draga úr kostnaði við læsingu. Þessi tækni hefur misst mikilvægi sitt á kerfi með lotukerfisleiðbeiningum frá nútíma örgjörvum og er of vinnufrek til að viðhalda henni vegna þess hve flókin hún er.
  • Tilkynnt gamaldags vélbúnaður RMI virkjun, sem verður fjarlægt í framtíðarútgáfu. Það er tekið fram að RMI virkjun er gamaldags, felld í flokk valmöguleika í Java 8 og er nánast aldrei notuð í nútíma framkvæmd.
  • Eytt JavaScript vél Nashorn, sem var úrelt í Java SE 11.
  • Fjarlægt tengi fyrir Solaris OS og SPARC örgjörva (Solaris/SPARC, Solaris/x64 og Linux/SPARC). Að fjarlægja þessar höfn mun leyfa samfélaginu að flýta fyrir þróun nýrra OpenJDK eiginleika án þess að eyða tíma í að viðhalda sérstökum eiginleikum Solaris og SPARC.

Heimild: opennet.ru

Bæta við athugasemd