Johdanto Java 8: een

Kuten kaikki tiedämme, Java on yksi tehokkaimmista ohjelmointikieleistä. Oracle on julkaissut uuden Java-version, Java SE 8, 18. maaliskuuta 2014. Tätä Java-innovatiivista julkaisua käytetään pääasiassa ohjelmistokehitysalustoihin. Java8: lla on useita ominaisuuksia, jotka ovat päivitykset ohjelmistokirjastojen, JVM: n ja työkalujen nykyiseen versioon. Tärkeimmän piirteen sanotaan olevan lambda-lausekkeiden käyttöönotto, josta keskustellaan seuraavassa osassa muiden ominaisuuksien ohella.

Java 8: n uudet ominaisuudet

Java-ohjelmointia varten Java SE 8 tarjoaa lukuisia ominaisuuksia. Jotkut niistä ovat

  • Lambdan lausekkeet
  • Stream-sovellusliittymä
  • ForEach () -menetelmä
  • Oletusmenetelmä
  • Päivämäärä-aika-sovellusliittymä
  • Nashorn JavaScripti
  • Menetelmäviitteet
  • StringJoiner

Tarkastelkaamme nyt kutakin niistä yksityiskohtaisesti.

1. Lambda-lauseke

Lambda-lauseke on anonyymi funktio (funktio ilman nimeä), joka auttaa koodin kirjoittamisessa tietyssä toiminnallisessa tyylissä. Yksittäinen tiivistelmämenetelmä (SAM) voidaan toteuttaa selkeästi ja tiiviisti lauseketta käyttämällä. Koska tietoja voidaan iteroida, suodattaa ja erottaa, se on erittäin hyödyllinen, etenkin kokoelmakirjastossa. Lambda-lauseke auttaa myös vähentämään koodin monimutkaisuutta. Alla on lambda-lausekkeen syntaksi:

Syntaksi:

(Parameters) -> Expression

Koodi:

( a, b ) -> a + b // Expression takes 2 parameters and return the sum.

2. Stream-sovellusliittymä

Stream API tarjoaa tekniikan tietojenkäsittelyä varten eri tavoin, kuten suodattamiseen, purkamiseen, muuntamiseen jne. Paketin java.util.stream avulla. Java.util.streamsia ei tarvitse sekoittaa Java InputStreams- tai OutputStreams-ohjelmiin, koska niiden välillä ei ole yhteyttä. Yksi Stream API: n tärkeimmistä eduista on, että se ei muuta sen lähdettä. ts. jos tietosarja suodatetaan, luodaan uusi tietojoukko suodatetulla datalla alkuperäisen lähteen muokkaamisen sijasta. Stream API arvioi koodin vain tarvittaessa, eikä se toista koodia useammin kuin kerran. Jos toisto on tehtävä, on luotava uusi virta. Tämän tueksi on olemassa useita ennalta määriteltyjä menetelmiä. Virtaan itraamiseksi voidaan käyttää seuraavaa koodia.

Koodi:

Stream.iterate(1, elem->elem+1)

3. ForEach () -menetelmä

Jatkamiseksi keräyskehyksen yli Java SE8 tarjoaa uuden menetelmän nimeltä forEach, joka määritetään Iterable-käyttöliittymässä. ForEach () -silmukkaa voidaan käyttää keräysluokassa, joka laajentaa rajapintaa Iterable. Koska tämä menetelmä syöttää yhden parametrin, lambda-lauseke voidaan myös välittää parametrina.

Koodi:

age.forEach( age -> ( System.out.println(age); )); //each age is taken and printed

4. Oletusmenetelmä

Normaalisti ei-abstrakteja menetelmiä ei voida lisätä rajapintoihin. Mutta Java 8: n tapauksessa se sallii näiden menetelmien lisäämisen rajapintoihin. Nämä menetelmät on kirjoitettu avainsanan oletusarvoilla ja tunnetaan oletusmenetelminä. Koska ne eivät ole abstrakteja menetelmiä, myös menetelmärunko voidaan sisällyttää siihen. Mielenkiintoista, että tämä ominaisuus varmistaa myös binäärisen yhteensopivuuden koodin vanhempien versioiden kanssa.

Koodi:

public interface Moveable (
default void Sound()(
System.out.println("Hi Anna, How is my sound?");
))

5. Päivämäärä-aika-sovellusliittymä

Java 8: ssa on otettu käyttöön uusi Time API ja Date API, joissa käsittelypäivämäärät ovat eri menetelmällä kuin muissa Java-versioissa. Näitä luokkia kutsutaan myös nimellä JSR-310, ThreeTen.

Seuraavat ovat Aika- ja Päivämäärä-luokat, jotka ovat saatavilla Java-ohjelmissa. aikapaketti:

  • Jtime.LocalDate -luokka
  • LocalTime-luokka
  • LocalDateTime-luokka
  • Kuukauden luokka
  • OffsetTime-luokka
  • OffsetDateTime-luokka
  • Kello luokka
  • ZonedDateTime-luokka
  • ZoneId-luokka
  • ZoneOffset-luokka
  • Vuoden luokka
  • YearMonth luokka
  • Kausi luokka
  • Kesto luokka
  • Välitön luokka
  • DayOfWeek enum
  • Kuukauden enum

Koodi:

Clock cl = Clock.systemDefaultZone();
System.out.println(cl.getZone());

6. Nashorn Javascript Engine

Nashorn on JavaScript-moottori, joka auttaa Java-koodin suorittamisessa Java-virtuaalikoneessa (JVM) dynaamisesti.

Se voidaan tehdä käyttämällä kahta jäljempänä mainittua menetelmää.

  1. Komentorivityökalun jjs avulla.
  2. Asettamalla se Java-lähdekoodiin.

Seuraavat vaiheet voidaan suorittaa suorittamiseksi jjs-komentorivityökalulla.

  • Luo .js-tiedosto js.
  • Kirjoita ja tallenna seuraava koodi tiedostoon.

Koodi:

var welcome = function()(
print("welcome to Nashorn Javascript Engine");
);
welcome ();

  • Avaa komentorivipääte
  • Kirjoita komento jjs welcome.js ja napsauta Enter.
  • Kun komento on suoritettu, alla oleva lähtö tulee näkyviin.

Tulos :

7. Menetelmäviitteet

Menetelmäviitteet on toinen Java 8: ssa esitelty ominaisuus, jota voidaan käyttää toiminnallisissa käyttöliittymämenetelmissä. Toisella tavalla voidaan sanoa, että ne ovat osa toisen Java-ominaisuuden, lambda-lausekkeita. Se johtuu siitä, että menetelmäviittausta voidaan käyttää myös, jos lambda-lauseketta voidaan käyttää.

Menetelmät voivat olla:

  • Viittaus rakentajaan
  • Viittaus staattiseen menetelmään
  • Viittaus ilmenemismenetelmään

Viittaus staattiseen menetelmään voi olla alla olevan kuvan mukainen

Koodi:

Thread t=new Thread(ExampleClass::ThreadStatusMethod);
t.start();

8. StringJoiner

Java 8: aan on lisätty uusi lopullinen luokka StringJoiner. util-paketti. Merkkijono voidaan rakentaa erottamalla rajoittajilla, kuten pilkulla (, ), väliviivalla (-) jne.

Koodi:

StringJoiner Names = new StringJoiner("-"); // Here, delimiter is -
// Adding names to StringJoiner
joinNames.add("Anna");
joinNames.add("Adam");

lähtö:

Turvallisuuden parannukset

Näiden ominaisuuksien lisäksi Java SE8: lle tehdään myös useita muita tietoturvaparannuksia. He ovat:

  • Julkisen avaimen salausstandardit 11 (PKCS) on laajennettu sisältämään 64-bittiset Windows-käyttöjärjestelmien tuet.
  • UNIX-alustoille on esitetty kaksi uutta toteutusta. Se tarjoaa esto- ja estämiskäyttäytymisen.
  • SunJCE-palveluntarjoajaan lisätään myös AES- ja PBE-algoritmeja, kuten PBEWithSHA256AndAES_128 ja PBEWithSHA512AndAES_256.
  • Java SE 8 tukee SNI (Server Name Indication) -laajennusta, joka laajentaa TLS / SSL-protokollia yhteyden muodostamiseksi palvelinsovelluksia tukevien käden kättelyjen aikana.

johtopäätös

Java SE8 on uusi, Oraclen kehittämä Java-versio, joka tarjoaa useita ominaisuuksia. Lambdan ilmaisua pidetään merkittävimpänä piirteenä heidän joukossaan. Tässä asiakirjassa selitetään yksityiskohtaisesti Java SE 8: n ominaisuuksia ja tietoturvaparannuksia.

Suositellut artikkelit

Tämä on opas uuteen java 8: een. Tässä keskustellaan uuden java 8: n kahdeksasta eri ominaisuudesta. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme

  1. CardLayout Java-sovelluksessa
  2. Käänteinen numero Java
  3. JComboBox Java
  4. StringBuffer Java -sovelluksessa
  5. Ryhmät Java-ohjelmoinnissa
  6. JavaScript-staattinen menetelmä | esimerkit