Bevezetés a Java 8-ba

Mint mindannyian tudjuk, a Java az egyik legerősebb programozási nyelv. Az Oracle 2014. március 18-án jelentette meg a Java új verzióját, a Java SE 8 verziót. A Java ezen innovatív kiadását elsősorban szoftverfejlesztő platformokra használják. A Java8-ban számos olyan szolgáltatás található, amelyek a programozási könyvtárak, a JVM és az Eszközök meglévő verziójának frissítései. A legfontosabb tulajdonság a lambda kifejezések bevezetése, melyről a következő szakaszban fogunk beszélni, más jellemzőkkel együtt.

A Java 8 új szolgáltatásai

A Java programozáshoz a Java SE 8 számos funkciót kínál. Néhányan közülük vannak

  • Lambda kifejezések
  • Stream API
  • ForEach () módszer
  • Alapértelmezett módszer
  • Dátum és idő API
  • Nashorn JavaScript motor
  • Módszer referenciák
  • StringJoiner

Most nézzük meg mindegyiket részletesen.

1. Lambda kifejezés

A Lambda kifejezés egy anonim függvény (név nélküli függvény), amely segít a kódírásban egy bizonyos funkcionális stílusban. Az Single Abstract Method (SAM) egy kifejezés használatával egyértelmű és tömör módon valósítható meg. Mivel az adatok iterálhatók, szűrhetők és kibonthatók, ez nagyon hasznos, különösen a gyűjtemény könyvtárában. A lambda kifejezés a kód bonyolultságának csökkentésében is segít. Az alábbiakban egy lambda kifejezés szintaxisa látható:

Szintaxis:

(Parameters) -> Expression

Kód:

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

2. Stream API

A Stream API különféle módokon kínál adatfeldolgozást, például szűrést, kibontást, átalakítást stb. A java.util.stream csomag segítségével. Nem szükséges összetéveszteni a java.util.streameket a Java InputStreams vagy OutputStreams fájlokkal, mivel közöttük nincs kapcsolat. A Stream API egyik fő előnye, hogy nem változtatja meg a forrását. Vagyis ha egy adatkészletet szűrt, akkor az eredeti forrás módosítása helyett új adatkészletet szűrt adatokkal hozunk létre. A Stream API csak akkor értékeli a kódot, amikor erre szükség van, és nem ismétli meg a kódot egyszer. Ha meg kell ismételni, új adatfolyamot kell létrehozni. Számos előre meghatározott módszer létezik ennek alátámasztására. A patak iterálásához a következő kód használható.

Kód:

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

3. ForEach () módszer

Annak érdekében, hogy a gyűjtési keretrendszeren keresztül ismétlődjön, a Java SE8 egy új, azEach nevű módszert kínál, amelyet az Iterable interfész határoz meg. A ForEach () hurok használható gyűjtési osztályban, amely kiterjeszti az illeszthetőséget. Mivel ez a módszer egyetlen paramétert ad be, a lambda kifejezés paraméterként is átadható.

Kód:

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

4. Alapértelmezett módszer

Általában a nem absztrakt módszereket nem lehet hozzáadni az interfészekhez. A Java 8 esetében azonban lehetővé teszi ezen módszerek felvételét az interfészekbe. Ezek a módszerek alapértelmezett kulcsszóval vannak írva, és alapértelmezett módszerekként ismertek. Mivel ezek nem absztrakt módszerek, a módszer törzsét szintén be lehet vonni. Érdekes módon ez a szolgáltatás biztosítja a bináris kompatibilitást a kód régebbi verzióival is.

Kód:

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

5. Dátum és idő API

A Java 8-ban bevezették az új Time API-t és a Date API-t, ahol a kezelési dátumok eltérő módszerben vannak, mint a Java többi verziója. Ezeket az osztályokat JSR-310, ThreeTen néven hívják.

Az alábbiakban olvashatjuk a Java és az Idő és Dátum osztályokat. időcsomag:

  • Jtime.LocalDate osztály
  • LocalTime osztály
  • LocalDateTime osztály
  • MonthDay osztály
  • OffsetTime osztály
  • OffsetDateTime osztály
  • Óra osztály
  • ZonedDateTime osztály
  • ZoneId osztály
  • ZoneOffset osztály
  • Év osztály
  • YearMonth osztály
  • Periódus osztály
  • Időtartam osztály
  • Azonnali osztály
  • DayOfWeek enum
  • Hónap enum

Kód:

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

6. Nashorn Javascript Engine

A Nashorn egy JavaScript motor, amely segíti a JavaScript kód dinamikus végrehajtását a Java virtuális gépben (JVM).

Ezt megteheti két, az alábbiakban említett módszerrel.

  1. A jjs parancssori eszköz segítségével.
  2. Ha beírja a Java forráskódba.

A jjs parancssori eszköz használatával történő végrehajtásához a következő lépéseket lehet végrehajtani.

  • Hozzon létre egy .js fájlt js.
  • Írja be és mentse a következő kódot a fájlba.

Kód:

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

  • A nyitott parancssori terminál
  • Írja be a jjs welcome.js parancsot, majd kattintson az enter gombra.
  • A parancs végrehajtása után az alábbi kimenet jelenik meg.

Teljesítmény :

7. Hivatkozások a módszerre

A módszerreferenciák egy másik, a Java 8-ban bevezetett funkció, amely használható a funkcionális interfész módszerekben. Más módon mondhatjuk, hogy ezek egy másik java funkció, a lambda kifejezések részhalmazát képezik. Ennek oka az, hogy egy módszer referencia is használható, ha lambda kifejezés használható.

A módszerek lehetnek:

  • Hivatkozás a kivitelezőre
  • Hivatkozás a statikus módszerre
  • Hivatkozás egy példány módszerre

A statikus módszerre való hivatkozás az alább látható

Kód:

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

8. StringJoiner

A Java 8-ba egy új végső osztály, a StringJoiner került hozzáadásra. util csomag. A karaktersorozatok elhatárolókkal elválaszthatók, például vesszővel (, ), kötőjelgel (-) stb.

Kód:

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

Kimenet:

Biztonsági fejlesztések

Ezen szolgáltatások mellett a Java SE8-hoz számos további biztonsági fejlesztést is végrehajtanak. Ők:

  • A nyilvános kulcsú titkosítási szabványokat (PKCS) kibővítették, hogy a Windows operációs rendszer 64 bites támogatásait is tartalmazzák.
  • A UNIX platformon két új megvalósítást mutattak be. Blokkoló és nem blokkoló viselkedést kínál.
  • A SunJCE szolgáltatóban az AES és a PBE algoritmusok, például a PBEWithSHA256AndAES_128 és a PBEWithSHA512AndAES_256, szintén hozzáadásra kerülnek.
  • A Java SE 8 támogatja a Server Name Indication (SNI) kiterjesztést, amely kiterjeszti a TLS / SSL protokollokat a kiszolgálóalkalmazások támogatására szolgáló kézfogás során történő kapcsolódáshoz.

Következtetés

A Java SE8 a Java új verziója, amelyet az Oracle fejlesztett ki, és számos funkcióval rendelkezik. Közülük a lambda kifejeződést tekintik a legfontosabb tulajdonságnak. Ebben a dokumentumban a Java SE 8 szolgáltatásait és a biztonsági fejlesztéseket részletesen ismertetjük.

Ajánlott cikkek

Ez egy útmutató a Java 8 újdonságaihoz. Itt az új java 8 különféle nyolc jellemzőjét tárgyaljuk. A további kapcsolódó cikkeinkben további információkat is megtudhat-

  1. CardLayout Java-ban
  2. Fordított szám Java-ban
  3. JComboBox Java
  4. StringBuffer Java-ban
  5. Tömbök a Java programozásban
  6. JavaScript statikus módszer | Példák

Kategória: