Java SE 15 idasilẹ

Lẹhin osu mefa ti idagbasoke, Oracle tu silẹ Syeed JavaSE 15 (Java Platform, Standard Edition 15), iṣẹ akanṣe OpenJDK-ìmọ ni a lo bi imuse itọkasi. Java SE 15 n ṣetọju ibamu sẹhin pẹlu awọn idasilẹ iṣaaju ti pẹpẹ Java; gbogbo awọn iṣẹ akanṣe Java ti a kọ tẹlẹ yoo ṣiṣẹ laisi awọn ayipada nigbati a ṣe ifilọlẹ labẹ ẹya tuntun. Ṣetan-lati fi sori ẹrọ Java SE 15 kọ (JDK, JRE ati Server JRE) pese sile fun Linux (x86_64), Windows ati macOS. Itọkasi imuse ni idagbasoke nipasẹ OpenJDK ise agbese Java 15 jẹ orisun ṣiṣi ni kikun labẹ iwe-aṣẹ GPLv2 pẹlu awọn imukuro GNU ClassPath ti o ngbanilaaye sisopọ agbara pẹlu awọn ọja iṣowo.

Java SE 15 jẹ ipin bi itusilẹ atilẹyin gbogbogbo ati pe yoo tẹsiwaju lati gba awọn imudojuiwọn titi di itusilẹ atẹle. Ẹka Atilẹyin Igba pipẹ (LTS) yẹ ki o jẹ Java SE 11, eyiti yoo tẹsiwaju lati gba awọn imudojuiwọn titi di ọdun 2026. Ẹka LTS ti tẹlẹ ti Java 8 yoo ni atilẹyin titi di Oṣu kejila ọdun 2020. Itusilẹ LTS atẹle ti wa ni eto fun Oṣu Kẹsan 2021. Jẹ ki a leti pe bẹrẹ pẹlu itusilẹ Java 10, iṣẹ akanṣe naa yipada si ilana idagbasoke tuntun kan, ti o tumọ si ọna kukuru fun dida awọn idasilẹ tuntun. Iṣẹ ṣiṣe tuntun ti ni idagbasoke ni ẹka titunto si imudojuiwọn nigbagbogbo, eyiti o pẹlu awọn ayipada ti a ti ṣetan ati lati eyiti awọn ẹka ti wa ni ẹka ni gbogbo oṣu mẹfa lati mu awọn idasilẹ titun duro.

Atiku awọn imotuntun Java 15 le Samisi:

  • Ti a ṣe sinu atilẹyin fun EdDSA (Edwards-Curve Digital Ibuwọlu Algorithm) iṣẹda Ibuwọlu oni-nọmba algorithm RFC 8032). Imuse EdDSA ti a daba ko da lori awọn iru ẹrọ ohun elo, ni aabo lati awọn ikọlu ikanni ẹgbẹ (akoko igbagbogbo ti gbogbo awọn iṣiro ni idaniloju) ati pe o yarayara ni iṣẹ ju imuse ECDSA ti o wa tẹlẹ ti a kọ ni ede C, pẹlu ipele aabo kanna. Fun apẹẹrẹ, EdDSA ni lilo ọna elliptic kan pẹlu bọtini 126-bit kan ṣe afihan iṣẹ ṣiṣe ti o jọra si ECDSA pẹlu ọna elliptic secp256r1 ati bọtini 128-bit kan.
  • Fi kun atilẹyin esiperimenta fun awọn kilasi edidi ati awọn atọkun, eyiti ko le ṣee lo nipasẹ awọn kilasi miiran ati awọn atọkun lati jogun, fa siwaju, tabi fagile imuse naa. Awọn kilasi ti o ni edidi tun pese ọna asọye diẹ sii lati ni ihamọ lilo ti superclass ju awọn iyipada iraye si, da lori ṣiṣe atokọ ni gbangba awọn kilasi ipin ti o gba laaye fun itẹsiwaju.

    package com.example.geometry;

    àkọsílẹ kü kilasi Apẹrẹ
    awọn iyọọda com.apẹẹrẹ.polar.Circle,
    com.apẹẹrẹ.quad.Ogun onigun,
    com.apẹẹrẹ.quad.simple.Square {…}

  • Fi kun atilẹyin fun awọn kilasi ti o farapamọ ti ko le ṣee lo taara nipasẹ bytecode ti awọn kilasi miiran. Idi pataki ti awọn kilasi ti o farapamọ ni lati lo ninu awọn ilana ti o ṣe ipilẹṣẹ awọn kilasi ni agbara ni akoko asiko ati lo wọn ni aiṣe-taara, nipasẹ iṣaro. Iru awọn kilasi nigbagbogbo ni iwọn-aye igbesi aye to lopin, nitorinaa mimu wọn fun iraye si lati awọn kilasi ti ipilẹṣẹ ko ni idalare ati pe yoo yori si alekun agbara iranti nikan. Awọn kilasi ti o farapamọ tun ṣe imukuro iwulo fun API ti kii ṣe boṣewa sun.misc.Unsafe :: defineAnonymousClass, eyiti o jẹ idasilẹ fun yiyọ kuro ni ọjọ iwaju.
  • Akojo idoti ZGC (Z idoti Z) ti ni imuduro ati pe a ti mọ bi o ti ṣetan fun lilo ni ibigbogbo. ZGC n ṣiṣẹ ni ipo palolo, dinku idinku nitori ikojọpọ idoti bi o ti ṣee ṣe (akoko idaduro nigba lilo ZGC ko kọja 10 ms.) ati pe o le ṣiṣẹ pẹlu awọn òkiti kekere ati nla, ti o wa ni iwọn lati ọpọlọpọ awọn megabyte ọgọrun si ọpọlọpọ terabytes.
  • Iduroṣinṣin ati rii ṣetan fun lilo gbogbogbo
    idoti-odè Shenandoah, Nṣiṣẹ pẹlu awọn idaduro ti o kere ju (Law-Pause-Time Time Collector). Shenandoah jẹ idagbasoke nipasẹ Red Hat ati pe o jẹ akiyesi fun lilo algorithm kan ti o dinku akoko iduro lakoko ikojọpọ idoti nipasẹ ṣiṣe mimọ ni afiwe pẹlu ipaniyan awọn ohun elo Java. Iwọn ti awọn idaduro ti a ṣe nipasẹ awọn agbasọ idoti jẹ asọtẹlẹ ati pe ko dale lori iwọn ti okiti, i.e. fun awọn òkiti 200 MB ati 200 GB awọn idaduro yoo jẹ aami kanna (maṣe jade kọja 50 ms ati nigbagbogbo laarin 10 ms);

  • Atilẹyin ti jẹ imuduro ati ṣafihan sinu ede naa awọn bulọọki ọrọ - fọọmu tuntun ti awọn ọrọ gangan okun ti o fun ọ laaye lati ṣafikun data ọrọ ila-pupọ ninu koodu orisun laisi lilo ohun kikọ silẹ ati titọju ọna kika ọrọ atilẹba ni bulọki. Awọn Àkọsílẹ ti wa ni fireemu nipa meta ė avvon.

    Fun apẹẹrẹ, dipo koodu

    html okun =" » +
    "\n\t" + " » +
    "\n\t\t" + " \"Java 1 wa nibi!" » +
    "\n\t" + " » +
    "\n" +" ";

    o le pato:

    html okun = """


    »Java 1
    wa nibi!

    """;

  • Atunse Legacy DatagramSocket API. Awọn imuse atijọ ti java.net.DatagramSocket ati java.net.MulticastSocket ti rọpo pẹlu imuse ode oni ti o rọrun lati ṣatunṣe ati ṣetọju, ati pe o tun ni ibamu pẹlu awọn ṣiṣan foju ti o dagbasoke laarin iṣẹ akanṣe naa. Loom. Ni ọran ti o ṣee ṣe aiṣedeede pẹlu koodu to wa, imuse atijọ ko ti yọkuro ati pe o le mu ṣiṣẹ ni lilo jdk.net.usePlainDatagramSocketImpl aṣayan.
  • Idabaa imuse esiperimenta keji ibamu awoṣe ninu oniṣẹ "apeere", eyiti o fun ọ laaye lati ṣalaye lẹsẹkẹsẹ oniyipada agbegbe lati wọle si iye ti a ṣayẹwo. Fun apẹẹrẹ, o le kọ lẹsẹkẹsẹ “ti o ba jẹ (obj instance of String s && s.length ()> 5) {.. s.contains(...) ..}” laisi asọye “Okun s = (Okun) obj”.

    je:

    ti o ba ti (obj apeere ti Ẹgbẹ) {
    Ẹgbẹ ẹgbẹ = (Ẹgbẹ) obj;
    var awọn titẹ sii = group.getEntries ();
    }

    Bayi o le ṣe laisi itumọ "Ẹgbẹ ẹgbẹ = (Ẹgbẹ) obj":

    ti o ba jẹ (obj instance of Group Group) {
    var awọn titẹ sii = group.getEntries ();
    }

  • Dabaa imuse esiperimenta keji ti Koko "gba", eyiti o pese fọọmu iwapọ kan fun asọye awọn kilasi, gbigba ọ laaye lati yago fun asọye ni ṣoki awọn oriṣiriṣi awọn ọna ipele kekere gẹgẹbi dọgba (), hashCode () ati toString () ni awọn ọran nibiti data ti wa ni ipamọ nikan ni awọn aaye ti ihuwasi ko yipada. Nigbati kilasi kan ba lo awọn imuse boṣewa ti awọn dọgba (), hashCode () ati awọn ọna toString (), o le ṣe laisi asọye ti o fojuhan wọn:

    igbasilẹ ti gbogbo eniyan BankTransaction (ọjọ agbegbe,
    ė iye
    Apejuwe okun) {}

    Ikede yii yoo ṣafikun awọn imuse ti awọn dọgba (), hashCode () ati awọn ọna toString () ni afikun si awọn ọna olupilẹṣẹ ati awọn ọna getter.

  • Dabaa awotẹlẹ keji ti Wiwọle-Memory API API, ngbanilaaye awọn ohun elo Java lati ni aabo ati ni imunadoko wọle si awọn agbegbe iranti ni ita okiti Java nipasẹ ifọwọyi MemorySegment tuntun, MemoryAddress, ati awọn abstractions MemoryLayout.
  • Alaabo ati pe ilana imudara Titiipa Irẹwẹsi ti a lo ninu HotSpot JVM lati dinku titiipa lori oke. Ilana yii ti padanu ibaramu rẹ lori awọn eto pẹlu awọn ilana atomiki ti a pese nipasẹ awọn CPUs ode oni, ati pe o jẹ alaapọn pupọ lati ṣetọju nitori idiju rẹ.
  • kede igba atijọ siseto RMI Muu ṣiṣẹ, eyi ti yoo yọ kuro ni itusilẹ ọjọ iwaju. O ṣe akiyesi pe Iṣiṣẹ RMI ti igba atijọ, ti o pada si aṣayan ni Java 8 ati pe o fẹrẹ jẹ pe ko lo ni iṣe ode oni.
  • Parẹ JavaScript engine agbanrere, eyiti a ti parẹ ni Java SE 11.
  • Yọ kuro ebute oko fun Solaris OS ati SPARC to nse (Solaris/SPARC, Solaris/x64 ati Linux/SPARC). Yiyọ awọn ebute oko oju omi wọnyi kuro yoo gba agbegbe laaye lati yara si idagbasoke awọn ẹya OpenJDK tuntun laisi pipadanu akoko mimu Solaris ati awọn ẹya kan pato SPARC.

orisun: opennet.ru

Fi ọrọìwòye kun