Úvod do Java 8

Jak všichni víme, Java je jedním z nejúčinnějších programovacích jazyků. Oracle vydal novou verzi Java, Java SE 8, 18. března 2014. Toto inovativní vydání Java se používá hlavně pro platformy pro vývoj softwaru. V Java8 existuje několik funkcí, které představují aktualizace existující verze programovacích knihoven, JVM a Tools. Nejdůležitějším rysem je zavedení lambda výrazů, o nichž budeme diskutovat v následující části spolu s dalšími rysy.

Nové funkce Java 8

Pro programování v jazyce Java nabízí Java SE 8 celou řadu funkcí. Někteří z nich jsou

  • Lambda výrazy
  • Stream API
  • Metoda ForEach ()
  • Výchozí metoda
  • Date Time API
  • Nashorn JavaScript Engine
  • Reference metod
  • StringJoiner

Nyní se podrobně podíváme na každou z nich.

1. Lambda výraz

Lambda výraz je anonymní funkce (funkce bez jména), která pomáhá psát kód v určitém funkčním stylu. Single Abstract Method (SAM) lze implementovat jasným a výstižným způsobem pomocí výrazu. Protože data lze iterovat, filtrovat a extrahovat, je velmi užitečná, zejména v knihovně sbírek. Lambda výraz také pomáhá při snižování složitosti kódu. Níže je uvedena syntaxe výrazu lambda:

Syntax:

(Parameters) -> Expression

Kód:

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

2. Stream API

Stream API nabízí techniku ​​zpracování dat různými způsoby, jako je filtrování, extrahování, transformace atd. Pomocí balíčku java.util.stream. Není nutné zaměňovat java.util.streams s Java InputStreams nebo OutputStreams, protože mezi nimi neexistuje žádný vztah. Jednou z hlavních výhod Stream API je, že nemění svůj zdroj. tj. Pokud je sada dat filtrována, je vytvořena nová sada dat s filtrovanými daty místo úpravy původního zdroje. Stream API vyhodnocuje kód pouze v případě potřeby a nereferuje kód více než jednou. Pokud je nutné provést opakování, musí být vygenerován nový tok. K tomu je k dispozici několik předdefinovaných metod. K iteraci proudu lze použít následující kód.

Kód:

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

3. Metoda ForEach ()

Aby bylo možné iterovat přes rámec kolekce, nabízí Java SE8 novou metodu nazvanou forEach, která je definována v rozhraní Iterable. Smyčku ForEach () lze použít ve třídě kolekce, která rozšiřuje rozhraní Iterable. Protože tato metoda zadává jediný parametr, lze lambda výraz také předat jako parametr.

Kód:

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

4. Výchozí metoda

Normálně nelze do rozhraní přidat metody bez abstraktů. V případě Java 8 však umožňuje přidávat tyto metody do rozhraní. Tyto metody jsou psány s výchozím klíčovým slovem a známé jako výchozí metody. Vzhledem k tomu, že se jedná o metody, které nejsou abstraktní, lze také zahrnout tělo metody. Zajímavé je, že tato funkce také zajišťuje binární kompatibilitu se staršími verzemi kódu.

Kód:

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

5. Date Time API

V Java 8 bylo zavedeno nové Time API a Date API, kde data zpracování jsou v jiné metodě ve srovnání s jinými verzemi Java. Tyto třídy se také nazývají JSR-310, ThreeTen.

Toto jsou třídy času a data, které jsou k dispozici v Javě. časový balíček:

  • Třída Jtime.LocalDate
  • LocalTime třída
  • Třída LocalDateTime
  • Třída MonthDay
  • Třída OffsetTime
  • Třída OffsetDateTime
  • Hodina hodin
  • Třída ZonedDateTime
  • Třída ZoneId
  • Třída ZoneOffset
  • Roční třída
  • YearMonth třída
  • Dobová třída
  • Třída trvání
  • Okamžitá třída
  • DayOfWeek výčet
  • Měsíční výčet

Kód:

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

6. Nashorn Javascript Engine

Nashorn je engine JavaScriptu, který pomáhá při dynamickém provádění kódu JavaScript v Java Virtual Machine (JVM).

Lze to provést pomocí dvou níže uvedených metod.

  1. S pomocí nástroje příkazového řádku jjs.
  2. Nastavením do zdrojového kódu Java.

Za účelem provedení pomocí nástroje příkazového řádku jjs lze provést následující kroky.

  • Vytvořte soubor .js js.
  • Napište a uložte následující kód do souboru.

Kód:

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

  • Otevřený terminál příkazového řádku
  • Napište příkaz jjs welcome.js a klikněte na enter.
  • Po provedení příkazu se zobrazí níže uvedený výstup.

Výstup :

7. Reference metod

Reference metod je další funkce, která je zavedena v Java 8 a která může být použita ve funkcích funkčního rozhraní. Jiným způsobem lze říci, že jsou podmnožinou jiného javovského výrazu, lambda výrazů. Je to proto, že odkaz na metodu lze také použít, pokud lze použít výraz lambda.

Metody mohou být:

  • Odkaz na konstruktor
  • Odkaz na statickou metodu
  • Odkaz na metodu instance

Odkaz na statickou metodu může být uveden níže

Kód:

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

8. StringJoiner

Nová závěrečná třída StringJoiner byla přidána do Java 8 v javě. využít balíček. Posloupnost znaků může být vytvořena oddělenými oddělovači, jako je čárka (, ), pomlčka (-) atd.

Kód:

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

Výstup:

Vylepšení zabezpečení

Kromě těchto funkcí se do Java SE8 provádí také několik dalších bezpečnostních vylepšení. Oni jsou:

  • Standardy kryptografie s veřejným klíčem 11 (PKCS) byly rozšířeny tak, aby zahrnovaly 64bitovou podporu pro operační systém Windows.
  • Pro platformy UNIX byly představeny dvě nové implementace. Nabízí chování blokování a neblokování.
  • U poskytovatele SunJCE jsou přidány také algoritmy AES a PBE, jako jsou PBEWithSHA256AndAES_128 a PBEWithSHA512AndAES_256.
  • Java SE 8 podporuje rozšíření Server Name Indication (SNI), které rozšiřuje protokoly TLS / SSL o připojení během handshakingu pro podporu serverových aplikací.

Závěr

Java SE8 je nová verze Java vyvinutá společností Oracle, která nabízí několik funkcí. Lambda výraz je považován za nejvýznamnější rys mezi nimi. V tomto dokumentu jsou podrobně vysvětleny funkce Java SE 8 a vylepšení zabezpečení.

Doporučené články

Toto je průvodce, co je nového v java 8 ?. Zde diskutujeme o různých osmi funkcích nové javy 8. Další informace naleznete také v dalších souvisejících článcích.

  1. CardLayout v Javě
  2. Reverzní číslo v Javě
  3. JComboBox v Javě
  4. StringBuffer v Javě
  5. Pole v programování Java
  6. Statická metoda JavaScript Příklady

Kategorie: