Въведение в Java 8

Както всички знаем, Java е един от най-мощните езици за програмиране. Нова версия на Java, Java SE 8 е издадена от Oracle на 18 март 2014 г. Тази иновативна версия на Java се използва главно за платформи за разработка на софтуер. В Java8 има няколко функции, които са актуализациите на съществуващата версия на програмните библиотеки, JVM и инструменти. Най-важната характеристика се казва въвеждането на ламбда изрази, които ще обсъдим в следващия раздел, заедно с други характеристики.

Нови функции на Java 8

За програмиране на Java, Java SE 8 предлага множество функции. Някои от тях са

  • Ламбда изрази
  • API на потока
  • Метод ForEach ()
  • Метод по подразбиране
  • Приложен API за дата
  • Nashorn JavaScript Engine
  • Референции за метод
  • StringJoiner

Сега нека разгледаме подробно всеки от тях.

1. Ламбда израз

Lambda изразът е анонимна функция (функция без име), която помага при писането на код в определен функционален стил. Единичният абстрактен метод (SAM) може да бъде реализиран по ясен и кратък начин чрез използване на израз. Тъй като данните могат да бъдат повторени, филтрирани и извлечени, това е много полезно, особено в библиотеката за събиране. Ламбда експресията също помага за намаляване на сложността на кода. По-долу е синтаксисът на лямбда израза:

Синтаксис:

(Parameters) -> Expression

Код:

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

2. Поток API

Stream API предлага техника за обработка на данни по различни начини като филтриране, извличане, преобразуване и т.н. с помощта на пакет java.util.stream. Не е необходимо да обърквате java.util.streams с Java InputStreams или OutputStreams, тъй като няма връзка между тях. Едно от основните предимства на Stream API е, че той не променя своя източник. т.е. Ако се филтрира набор от данни, се създава нов набор от данни с филтрирани данни, а не модифициране на първоначалния източник. API на Stream оценява кода само когато е необходим и не повтаря кода повече от веднъж. Ако трябва да се извърши повторно заявяване, трябва да се генерира нов поток. Съществуват няколко предварително дефинирани метода в подкрепа на това. За повторение на потока може да се използва следния код.

Код:

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

3. Метод ForEach ()

За да повтаря рамката на Collection, Java SE8 предлага нов метод, наречен forEach, който е дефиниран в Iterable интерфейса. ForEach () цикъл може да се използва в колекционен клас, който разширява интерфейса Iterable. Тъй като този метод въвежда един параметър, lambda израз може да бъде предаден и като параметър.

Код:

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

4. Метод по подразбиране

Обикновено не-абстрактните методи не могат да се добавят към интерфейсите. Но в случая на Java 8 тя позволява да се добавят тези методи в интерфейси. Тези методи са написани с ключова дума по подразбиране и известни като методи по подразбиране. Тъй като те са неабразивни методи, може да се включи и тялото на метода. Интересното е, че тази функция гарантира и бинарната съвместимост с по-старите версии на кода.

Код:

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

5. API за дата и час

В Java 8 е въведен нов API за време и API, когато датите на обработка са по различен метод в сравнение с други версии на Java. Тези класове се наричат ​​също JSR-310, ThreeTen.

По-долу са класовете Час и Дата, които са налични в Java. времеви пакет:

  • Jtime.LocalDate клас
  • LocalTime клас
  • LocalDateTime клас
  • MonthDay клас
  • OffsetTime клас
  • OffsetDateTime клас
  • Часовник
  • ZonedDateTime клас
  • ZoneId клас
  • ZoneOffset клас
  • Годишен клас
  • YearMonth клас
  • Период клас
  • Продължителност клас
  • Незабавен клас
  • DayOfWeek enum
  • Месец enum

Код:

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

6. Nashorn Javascript Engine

Nashorn е JavaScript двигател, който помага при динамично изпълнение на JavaScript код във виртуална машина на Java (JVM).

Може да се направи с помощта на два метода, посочени по-долу.

  1. С помощта на инструмента команден ред jjs.
  2. Чрез настройка в него в изходния код на Java.

За да изпълните с помощта на инструмента за команден ред jjs, могат да бъдат изпълнени следните стъпки.

  • Създайте .js файл js.
  • Напишете и запишете следния код във файла.

Код:

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

  • Отвореният терминал за команден ред
  • Напишете команда jjs welcome.js и щракнете върху Enter.
  • След като командата се изпълни, ще се покаже изходът по-долу.

Резултат :

7. Препратки към методите

Reference Reference е друга функция, която се въвежда в Java 8, която може да се използва във функционални методи на интерфейс. По друг начин може да се каже, че те са подмножество на друга функция на Java, ламбда изрази. Това е така, защото може да се използва и референтен метод, ако може да се използва ламбда-израз.

Методите могат да бъдат:

  • Позоваване на Конструктор
  • Позоваване на статичния метод
  • Позоваване на метод на инстанция

Позоваването на статичния метод може да бъде както е показано по-долу

Код:

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

8. StringJoiner

Нов последен клас StringJoiner е добавен към Java 8 в Java. пакет util. Поредица от знаци може да бъде изградена разделена от разделители като запетая (, ), тире (-) и т.н.

Код:

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

изход:

Подобрения в сигурността

В допълнение към тези функции, на Java SE8 се правят и няколко други подобрения на сигурността. Те са:

  • Стандартите за криптография на публичен ключ 11 (PKCS) са разширени, за да съдържа 64-битови поддръжки за операционната система, Windows.
  • За платформи UNIX бяха представени две нови реализации. Предлага блокиращо и не блокиращо поведение.
  • В SunJCE доставчика се добавят и AES и PBE алгоритми като PBEWithSHA256AndAES_128 и PBEWithSHA512AndAES_256.
  • Java SE 8 поддържа разширението за индикация на име на сървър (SNI), което разширява TLS / SSL протоколите за свързване по време на ръкостискане за поддръжка на сървърни приложения.

заключение

Java SE8 е новата версия на Java, разработена от Oracle, която предлага няколко функции. Изразът на ламбда се счита за най-значимата черта сред тях. В този документ подробно са обяснени характеристиките на Java SE 8 и подобренията на сигурността.

Препоръчителни статии

Това е ръководство за „Какво е ново в java 8?“. Тук обсъждаме различните осем функции на новото java 8. Можете също да разгледате и другите ни свързани статии, за да научите повече-

  1. CardLayout в Java
  2. Обратен номер в Java
  3. JComboBox на Java
  4. StringBuffer в Java
  5. Масиви в Java програмиране
  6. Статичен метод на JavaScript | Примери