Введение в Java 8

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

Новые возможности Java 8

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

  • Лямбда-выражения
  • Stream API
  • Метод ForEach ()
  • Метод по умолчанию
  • API даты и времени
  • Нашорн JavaScript движок
  • Ссылки на метод
  • StringJoiner

Теперь давайте рассмотрим каждый из них подробно.

1. Лямбда-выражение

Лямбда-выражение - это анонимная функция (функция без имени), которая помогает в написании кода в определенном функциональном стиле. Единый абстрактный метод (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 является то, что он не меняет своего источника. т.е. если набор данных фильтруется, новый набор данных создается с отфильтрованными данными, а не изменяет исходный источник. Stream API оценивает код только тогда, когда он необходим, и не повторяет код более одного раза. Если необходимо выполнить повторение, должен быть создан новый поток. Несколько заранее определенных методов присутствуют, чтобы поддержать это. Для итерации потока можно использовать следующий код.

Код:

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

3. Метод ForEach ()

Для итерации по Collection Framework Java SE8 предлагает новый метод forEach, который определен в интерфейсе Iterable. Цикл ForEach () может использоваться в классе коллекции, который расширяет интерфейс Iterable. Поскольку этот метод вводит один параметр, лямбда-выражение также может быть передано в качестве параметра.

Код:

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

4. Метод по умолчанию

Как правило, неабстрактные методы не могут быть добавлены к интерфейсам. Но, в случае Java 8, это позволяет добавлять эти методы в интерфейсы. Эти методы написаны с ключевым словом default и известны как методы по умолчанию. Так как они являются неабстрактными методами, тело метода также может быть включено. Интересно, что эта функция также обеспечивает двоичную совместимость со старыми версиями кода.

Код:

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
  • Перечисление месяцев

Код:

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

6. Нашорн 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. Ссылки на метод

Ссылки на методы - это еще одна функция, представленная в Java 8, которая может использоваться в методах функционального интерфейса. С другой стороны, можно сказать, что они являются подмножеством другой функции Java, лямбда-выражений. Это потому, что ссылка на метод также может быть использована, если можно использовать лямбда-выражение.

Методы могут быть:

  • Ссылка на конструктор
  • Ссылка на статический метод
  • Ссылка на метод экземпляра

Ссылка на статический метод может быть такой, как показано ниже

Код:

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

8. StringJoiner

Новый финальный класс StringJoiner был добавлен в Java 8 в Java. Пакет утилит. Последовательность символов может быть построена через разделители, такие как запятая (, ), дефис (-) и т. Д.

Код:

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 поддерживает расширение Server Name Indication (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 | Примеры