Ohjelmointi

Java JDK 11: Kaikki uudet ominaisuudet nyt saatavilla

Java Development Kit (JDK) 11 on nyt yleisesti saatavana ja valmis tuotantokäyttöön, mikä tuo tuottavuuden parannuksia ja HTTP-asiakasrajapinnan, joka toteuttaa HTTP / 2: n.

Java Standard Editionin (SE) versiossa 11 on 16 suurta ominaisuusmuutosta. Java 11 menettää myös joitain ominaisuuksia poistamalla CORBA- ja Java EE (hiljattain nimeksi Jakarta EE) -moduulit sekä JavaFX: n, joka on nyt saatavana erillisenä tekniikkana.

Java 11: ssä Oracle on haaroittanut päälinja-arkiston jdk / jdk jdk / jdk11-stabilointivarastoon. Muutokset, jotka on työnnetty jdk / jdk- tai jdk / client-sovelluksiin, on nyt merkitty JDK 12: lle. Vakautusvarasto voi hyväksyä valitut virhekorjaukset ja, jos ne hyväksytään, myöhäiset parannukset JDK: n julkaisuprosessin mukaisesti.

Viimeisin versio Oraclen tavallisen Java-toteutuksen versiosta on Long Term Support (LTS) -julkaisu, jolla on Oraclen kaupallista tukea vähintään kahdeksan vuoden ajan. Virhekorjauksia ja tietoturvapäivityksiä tarjotaan vuoteen 2026 mennessä. Uusia LTS-julkaisuja on määrä toimittaa joka kolmas vuosi, ja vuonna 2021 julkaistavan JDK 17: n on tarkoitus olla seuraava LTS-julkaisu. Välitiedotteet tulevat kuuden kuukauden välein.

Mistä ladata JDK 11

Voit ladata JDK 11: n Oracle Technology Network -verkosta.

Uusia ominaisuuksia Java 11 JDK: ssa

JDK 11: ssä on 16 uutta ominaisuutta:

  • Parannetaan Aarch64-sisäpiirteitä toteuttamalla uusia sisäisiä ominaisuuksialang.Math sin-, cos- ja lokitoiminnot Aarch64-prosessoreissa. Tämä ehdotus korostaa erikoistuneita suorittimen arkkitehtuurikohtaisia ​​koodimalleja, jotka parantavat sovellusten ja vertailuarvojen suorituskykyä.
  • Pesäpohjainen kulunvalvonta esittelee pesät, pääsynhallintakontekstin, joka vastaa Java-kielen sisäkkäisten tyyppien käsitettä. Pesät sallivat luokkien, jotka ovat loogisesti osa samaa koodikokonaisuutta, mutta jotka on koottu erillisiin luokkatiedostoihin, pääsemään toistensa yksityisiin jäseniin tarvitsematta kääntäjiä lisäämään esteettömyyttä laajentavia siltamenetelmiä.
  • TLS (Transport Layer Security) 1.3, jossa tämä TLS-protokollan uudistaminen asennetaan JDK 11: een, mikä tarjoaa merkittäviä turvallisuus- ja suorituskykyetuja. Tavoitetta ei kuitenkaan ole tukea TLS 1.3: n kaikkia ominaisuuksia. Yhteensopimattomuusriskien minimoimiseksi TLS 1.3 ottaa oletusarvoisesti käyttöön taaksepäin yhteensopivan tilan. Sovellukset voivat kytkeä tämän tilan pois tai päälle haluamallasi tavalla.
  • Nashornin JavaScript-moottorin ja JJS-työkalun käytöstä poistaminen aikomuksena poistaa ne tulevaisuudessa. Oracle on havainnut Nashornin ylläpitämisen haastavaksi, kun otetaan huomioon ECMAScript-kielirakenteiden ja -sovellusliittymien nopea mukauttaminen ja muokkaaminen.
  • HTTP Client (vakio), joka standardoi JDK 9: ssä esitetyn ja JDK 10: ssä päivitetyn inkuboidun HTTP API -asiakasohjelman. API tarjoaa estoa pyytämisen ja vastaamisen semantiikkaa kautta Täydelliset tulevaisuudet, joka voidaan liittää laukaisevista toimista. Nyt asynkroninen toteutus on kirjoitettu melkein kokonaan uudelleen sen jälkeen, kun se on inkuboitu JDK: issa 9 ja 10. RX Flow -konsepti on työnnetty toteutukseen, mikä eliminoi monia HTTP / 2: n tukemiseen tarvittavia mukautettuja käsitteitä. Tiedonsiirto on nyt helpommin jäljitettävissä käyttäjätason pyyntöjulkaisijoista ja vastausten julkaisijoista alla olevaan pistorasiaan. Tämä vähentää monimutkaisuutta ja maksimoi mahdollisuuden uudelleenkäyttöön HTTP / 1: n ja HTTP / 2: n välillä.
  • "Ei-op" -keräilijänä laskutettu Epsilon-roskakorinkäsittelylaite hoitaa muistin jakamisen toteuttamatta todellisia muistin talteenottomekanismeja. Epsilonin käyttötapauksiin kuuluu suorituskyvyn, muistin paineen ja virtuaalikoneen käyttöliittymän testaus. Sitä voitaisiin käyttää myös lyhytaikaisiin töihin.
  • Lambda-parametrien paikallisen muuttujan syntaksin tulisi kohdistaa implisiittisesti kirjoitetun lausekkeen muodollisen parametrin ilmoituksen syntaksin paikallisen muuttujan ilmoituksen syntaksin kanssa. Tämä sallisi var käytetään ilmoitettaessa implisiittisesti kirjoitettujen lambda-lausekkeiden muodollisia parametreja.
  • Java-luokan tiedostomuotoa laajennetaan tukemaan uutta vakiomuotoista lomaketta, VAKIO_Dynaaminen. Tavoitteena on vähentää materialisoitavien luokkatiedostoihin liittyvien rajoitusten uusien muotojen kehittämisen kustannuksia ja häiriöitä.
  • Keskeisen sopimuksen Curve25519- ja Curve448-salausten kanssa tulee olla tehokkaampia ja turvallisempia kuin nykyinen elliptinen käyrä Diffie-Hellman -malli. Kaksi elliptistä käyrää, Curve25510 ja Curve448, soveltuvat jatkuvaan toteutukseen ja poikkeuksettomaan skalaariseen kertolaskuun, joka on IETF: n mukaan vastustuskykyisempi joukolle sivukanavan hyökkäyksiä, mukaan lukien ajoitus ja välimuistihyökkäykset. Ehdotuksen tavoitteisiin kuuluu sovellusliittymä ja keskeisen sopimusjärjestelmän toteutus sekä alustasta riippumaton, kaikki Java-toteutus. Ehdotuksen osana esitetyn modulaarisen aritmeettisen toteutuksen monimutkaisuuteen ja hienovaraisuuteen liittyy kuitenkin riski.
  • Lentotallennin tarjoaisi pientä tiedonsiirtokehystä sekä Java-sovellusten että HotSpot JVM: n vianmääritykselle. Lentotallennin on ollut Oraclen kaupallisen JDK: n ominaisuus, mutta sen lähdekoodin pitäisi siirtyä avoimeen arkistoon, jotta ominaisuus olisi yleisesti saatavilla. Iclouded olisi sovellusliittymä, joka tuottaa ja kuluttaa tietoja tapahtumina, tarjoten puskurimekanismin ja binäärisen datan muodon ja mahdollistamalla tapahtumien konfiguroinnin ja suodattamisen. Ehdotus kehottaa myös tarjoamaan tapahtumia käyttöjärjestelmän, HotSpotin ja JDK: n kirjastoille.
  • Alustan sovellusliittymien päivittäminen tukemaan Unicode-versiota 10.0, mikä pitää Java ajan tasalla. Tukea odotetaan seuraavissa luokissa:
    • Merkki jaMerkkijono että lang paketti
    • NumericShaper että awt. font paketti
    • Bidi, BreakIteratorja Normalizer että teksti paketti
  • ChaCha20- ja Poly1305-salausalgoritmien toteuttaminen. ChaCha2020 on suhteellisen uusi stream-salaus, joka voi korvata vanhemman, epävarman R4-salauksen. ChaCha20 yhdistettäisiin Poly1305-todennukseen. ChaCha20- ja ChaCha20-Poly1305-salaustoteutukset toimitettaisiin SunJCE (Java Cryptography Extension) -palveluntarjoajan toteuttamien algoritmien avulla käyttäen salaus.CipherSpi API.
  • Java-käynnistysohjelman parantaminen Java-lähdekoodin yhtenä tiedostona toimitetun ohjelman ajamiseksi, jotta nämä ohjelmat voivat toimia suoraan lähteestä. Yhden tiedoston ohjelmat ovat yleisiä kirjoitettaessa pieniä apuohjelmia tai kehittäjille Java-oppimisen alkuvaiheessa. Myös yksi lähdetiedosto voi koota useita luokkatiedostoja, mikä lisää pakkausten yleiskustannuksia. Näissä yhteyksissä ohjelman kokoaminen ennen sen suorittamista on vain tarpeetonta, perinteeseen perustuvaa vaihetta.
  • Matalan kasan profilointi, joka tarjoaa tavan näyte Java-kasan allokoinnista, johon pääsee JVM Tool Interface -sovelluksen kautta. Tämän pyrkimyksen tarkoituksena on saada tietoa näistä allokoinnista tavalla, joka on alhainen yleiskustannus, johon pääsee ohjelmallisen käyttöliittymän kautta ja joka voi ottaa näytteitä kaikista allokoinneista. Toteutuksen riippumattomuus ja tietojen toimittaminen elävistä ja kuolleista kasoista ovat myös tavoitteita. Huono kasanhallinta voi johtaa kasan uupumiseen ja roskien keräykseen. Suurimmasta osasta tätä korjaavia työkaluja puuttuu tiettyjen allokaatioiden puhelusivusto, tiedot, jotka voivat olla kriittisiä muistiongelmien virheenkorjauksessa.
  • Windows XP: n Pack200- ja Unpack200-työkalujen sekä Pack200-sovellusliittymän vanhentuminen hyöt.jar. Pack200 on .jar-tiedostojen pakkausmenetelmä, jonka tarkoituksena on vähentää levyn ja kaistanleveyden vaatimuksia sovellusten pakkaamisessa, lähettämisessä ja jakelussa. Ylläpitokustannukset ja vähäinen käyttö eivät oikeuta niiden säilyttämistä, projektin johtajat sanovat.
  • Z Garbage Collector (ZGC), kokeellinen, matalaviiveinen roskasäiliö, käsittelemään kasoja, jotka vaihtelevat suhteellisen pienistä erittäin suuriin, monen teratavun kokoisiin kasoihin. ZGC: tä käytettäessä taukoaikojen ei tulisi ylittää 10 ms ja levityksen läpimenon vähennys saa olla enintään 15 prosenttia verrattuna G1-keräimen käyttöön. ZGC luo pohjan myös tuleville ominaisuuksille ja optimoinnille. Linux / x64 on ensimmäinen alusta, joka saa ZGC-tuen.

Mikä on poistettu Java JDK 11: stä

Java EE EE- ja CORBA-moduulit poistettiin käytöstä Java SE 9: ssä, tarkoituksena poistaa ne myöhemmässä versiossa, joka on JDK 11.

Java SE 6, joka julkaistiin joulukuussa 2006, sisälsi täydellisen verkkopalvelupinon kehittäjien helpottamiseksi - mukaan lukien neljä Java EE -alustalle rakennettua tekniikkaa: JAX-WS (Java API for XML-based Web Services, JAXB (Java Architecture for XML Binding), JAF (JavaBeans Activation Framework) ja Java-merkinnät. Ajan myötä Java EE -versiot kehittyivät, mikä johti Java SE: n vaikeuksiin, kuten Java SE: n kannalta merkityksettömien tekniikoiden sisällyttämiseen ja vaikeimpaan ylläpitoon kahdessa Java-versiossa Oracle sanoo, että Java EE -tekniikoiden erillisillä versioilla, jotka ovat saatavana kolmannen osapuolen sivustoilta, ei ole enää tarvetta pitää niitä Java SE: ssä tai JDK: ssa.

Jotkin sovellukset eivät kuitenkaan käänny tai toimi, jos ne luottavat JDK for Java EE -sovellusliittymien ja työkalujen valmiiseen tukeen. Binaarisia ja lähdeyhteensopimattomuuksia ilmenisi siirrettäessä JDK 6, 7 tai 8 myöhempään versioon. Oracle sanoo, että kehittäjät, joihin nämä riskit vaikuttavat, voivat ottaa käyttöön vaihtoehtoisia Java EE -tekniikoiden versioita.

CORBA juontaa juurensa 1990-luvulle, ja Oracle sanoo, että nykyään ei ole merkittävää kiinnostusta kehittää moderneja Java-sovelluksia CORBA: n kanssa. Ja CORBA-tuen ylläpitokustannukset ovat suuremmat kuin sen jäljellä olevat edut.

Mutta CORBA: n poistaminen saattaa johtaa CORBA-toteutuksiin, jotka eivät toimi, jos ne sisältävät vain osan CORBA-sovellusliittymistä ja odottavat JDK: n toimittavan loput. Kolmannen osapuolen CORBA-versiota ei ole, ja on epävarmaa, voisiko kolmas osapuoli ottaa haltuunsa CORBA-sovellusliittymän ylläpidon.

JavaFX poistetaan, joten se ei ole sidottu Java JDK: n kahdesti vuodessa päivitettävään aikatauluun.

$config[zx-auto] not found$config[zx-overlay] not found