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.
- A jjs parancssori eszköz segítségével.
- 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-
- CardLayout Java-ban
- Fordított szám Java-ban
- JComboBox Java
- StringBuffer Java-ban
- Tömbök a Java programozásban
- JavaScript statikus módszer | Példák