Wprowadzenie do Java 8

Jak wszyscy wiemy, Java jest jednym z najpotężniejszych języków programowania. Nowa wersja Java, Java SE 8 została wydana przez Oracle 18 marca 2014 r. Ta innowacyjna wersja Java jest używana głównie na platformach programistycznych. Java8 zawiera kilka funkcji, które są aktualizacjami istniejącej wersji bibliotek programistycznych, JVM i narzędzi. Najważniejszą cechą jest wprowadzenie wyrażeń lambda, które omówimy w dalszej części wraz z innymi funkcjami.

Nowe funkcje Java 8

W przypadku programowania Java Java SE 8 oferuje mnóstwo funkcji. Niektórzy z nich są

  • Wyrażenia lambda
  • Stream API
  • Metoda ForEach ()
  • Metoda domyślna
  • Interfejs API daty i godziny
  • Silnik JavaScript Nashorn
  • Referencje metod
  • StringJoiner

Teraz przyjrzyjmy się szczegółowo każdemu z nich.

1. Wyrażenie lambda

Wyrażenie lambda to funkcja anonimowa (funkcja bez nazwy), która pomaga pisać kod w określonym stylu funkcjonalnym. Metodę Single Abstract Method (SAM) można wdrożyć w jasny i zwięzły sposób za pomocą wyrażenia. Ponieważ dane można iterować, filtrować i wyodrębniać, jest to bardzo pomocne, szczególnie w bibliotece kolekcji. Wyrażenie Lambda pomaga również zmniejszyć złożoność kodu. Poniżej znajduje się składnia wyrażenia lambda:

Składnia:

(Parameters) -> Expression

Kod:

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

2. Stream API

Stream API oferuje technikę przetwarzania danych na różne sposoby, takie jak filtrowanie, wyodrębnianie, transformacja itp. Za pomocą pakietu java.util.stream. Nie ma potrzeby, aby pomylić java.util.streams z Java InputStreams lub OutputStreams, ponieważ nie ma między nimi relacji. Jedną z głównych zalet Stream API jest to, że nie zmienia źródła. tzn. jeśli zestaw danych jest filtrowany, nowy zestaw danych jest tworzony z przefiltrowanymi danymi zamiast modyfikować oryginalne źródło. Stream API ocenia kod tylko wtedy, gdy jest potrzebny i nie iteruje go więcej niż jeden raz. Jeśli konieczne jest powtórzenie, należy wygenerować nowy strumień. Istnieje kilka wstępnie zdefiniowanych metod, które to potwierdzają. Aby iterować strumień, można użyć następującego kodu.

Kod:

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

3. Metoda ForEach ()

W celu iteracji w ramach Framework Collection Java SE8 oferuje nową metodę o nazwie forEach, która jest zdefiniowana w interfejsie Iterable. Pętli ForEach () można użyć w klasie kolekcji, która rozszerza interfejs Iterable. Ponieważ ta metoda wprowadza pojedynczy parametr, wyrażenie lambda można również przekazać jako parametr.

Kod:

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

4. Metoda domyślna

Zwykle do interfejsów nie można dodawać metod nieabstrakcyjnych. Ale w przypadku Javy 8 pozwala na dodawanie tych metod do interfejsów. Te metody są zapisywane przy użyciu słowa kluczowego default i są znane jako metody domyślne. Ponieważ są to metody nieabstrakcyjne, można również dołączyć treść metody. Co ciekawe, ta funkcja zapewnia również zgodność binarną ze starszymi wersjami kodu.

Kod:

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

5. Data i godzina API

W Javie 8 wprowadzono nowe API Time i Date API, w których obsługa dat odbywa się w innej metodzie niż w innych wersjach Java. Klasy te są również nazywane JSR-310, ThreeTen.

Poniżej przedstawiono klasy godziny i daty dostępne w Javie. pakiet czasowy:

  • Klasa Jtime.LocalDate
  • Klasa LocalTime
  • Klasa LocalDateTime
  • Klasa MonthDay
  • Klasa OffsetTime
  • Klasa OffsetDateTime
  • Klasa zegara
  • Klasa ZonedDateTime
  • Klasa ZoneId
  • Klasa ZoneOffset
  • Klasa rok
  • Klasa YearMonth
  • Klasa okresowa
  • Klasa czasu trwania
  • Natychmiastowa klasa
  • Wyliczanie DayOfWeek
  • Wyliczenie miesiąca

Kod:

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

6. Silnik Javascript Nashorn

Nashorn to silnik JavaScript, który pomaga w dynamicznym wykonywaniu kodu JavaScript w Java Virtual Machine (JVM).

Można to zrobić za pomocą dwóch metod wymienionych poniżej.

  1. Za pomocą narzędzia wiersza polecenia jjs.
  2. Poprzez ustawienie w nim kodu źródłowego Java.

Aby wykonać za pomocą narzędzia wiersza polecenia jjs, można wykonać następujące kroki.

  • Utwórz plik .js js.
  • Napisz i zapisz następujący kod w pliku.

Kod:

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

  • Otwarty terminal wiersza poleceń
  • Napisz polecenie jjs welcome.js i kliknij Enter.
  • Po wykonaniu polecenia zostaną wyświetlone poniższe dane wyjściowe.

Wyjście :

7. Referencje metod

Odwołania do metod to kolejna funkcja wprowadzona w Javie 8, której można używać w metodach interfejsu funkcjonalnego. W inny sposób można powiedzieć, że są one podzbiorem innej cechy Java, wyrażeń lambda. Jest tak, ponieważ można również użyć odwołania do metody, jeśli można zastosować wyrażenie lambda.

Metody mogą być:

  • Odniesienie do konstruktora
  • Odniesienie do metody statycznej
  • Odniesienie do metody instancji

Odniesienie do metody statycznej może być takie, jak pokazano poniżej

Kod:

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

8. StringJoiner

Do Java 8 w Javie dodano nową klasę końcową StringJoiner. pakiet utylizacji. Sekwencję znaków można konstruować, oddzielając je ogranicznikami, takimi jak przecinek (, ), łącznik (-) itp.

Kod:

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

Wynik:

Ulepszenia bezpieczeństwa

Oprócz tych funkcji wprowadzono także kilka innych ulepszeń bezpieczeństwa w Javie SE8. Oni są:

  • Standardy kryptografii klucza publicznego 11 (PKCS) zostały rozszerzone o 64-bitowe wsparcie dla systemu operacyjnego Windows.
  • W przypadku platform UNIX zaprezentowano dwie nowe implementacje. Oferuje działanie blokujące i nieblokujące.
  • W dostawcy SunJCE dodawane są również algorytmy AES i PBE, takie jak PBEWithSHA256AndAES_128 i PBEWithSHA512AndAES_256.
  • Java SE 8 obsługuje rozszerzenie Server Name Indication (SNI), które rozszerza protokoły TLS / SSL w celu połączenia podczas uzgadniania w celu obsługi aplikacji serwerowych.

Wniosek

Java SE8 to nowa wersja Java opracowana przez Oracle, która oferuje kilka funkcji. Ekspresja lambda jest uważana za najważniejszą z nich. W tym dokumencie szczegółowo opisano funkcje Java SE 8 i rozszerzenia zabezpieczeń.

Polecane artykuły

To jest przewodnik po nowościach w Javie 8 ?. Tutaj omawiamy różne osiem funkcji nowej wersji Java 8. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej-

  1. CardLayout w Javie
  2. Odwrotna liczba w Javie
  3. JComboBox w Javie
  4. StringBuffer w Javie
  5. Tablice w programowaniu Java
  6. Metoda statyczna JavaScript | Przykłady