- Что нового появилось в Java 8?
- Лямбда выражения
- Ссылочные методы
- Optional
- Функциональный интерфейс
- Stream API
- Date API
- Что такое ссылочные методы?
Позволяет в качестве параметра передавать ссылку на другой метод, аналогичен лямбда выражению
- Что такое Optional? где его можноиспользовать?
Optional являются удобным средством предотвращения NullPointerException.
Используются для объектов которые могут быть null, а могут и не быть.
- Что такое функциональный интерфейс?
это интерфейс с одним абстрактным методом.
- Какие есть стандартные функциональные интерфейсы?
- Function принимает один аргумент и возвращает результат
- Consumer принимает один аргумент но не возвращает результата
- Supplier не принимает вргументов но возвращает результат
- Predicate принимает один аргумент и возвращет boolean
- BinaryOperator принимает два аргумента и возвращает результат, все однгого типа
- UnaryOperator принимает один аргумент и возвращает результат, все одного типа.
- Что такое лямда выражения?
лямбда-выражение - это функция, на которую можно ссылаться и передавать ее как объект.
Лямбда выражение используется как реализация метода функционального интерфейса.
- Что такое Стримы?
Это итератор чья роль применять набор опираций для каждого элемента, который он содержит.
Основное отличие от коллекций это то что стримы обрабатываются лениво, т.е. по требованию
- Расскажи про новый Date и Time API
Давней проблемой для разработчиков Java была неадекватная поддержка манипуляций с датой и временем, необходимых для обычных разработчиков.
Существующие классы, такие как java.util.Date и SimpleDateFormatter, не являются потокобезопасными, что может привести к потенциальным проблемам с параллелизмом для пользователей.
Плохой дизайн API также является реальностью в старом API данных Java. Вот простой пример - годы в java.util.Date начинаются с 1900, месяцы начинаются с 1, а дни начинаются с 0, что не очень интуитивно понятно.
Эти и некоторые другие проблемы привели к популярности сторонних библиотек даты и времени, таких как Joda-Time.
Чтобы решить эти проблемы и обеспечить лучшую поддержку в JDK, для Java SE 8 был разработан новый API даты и времени, свободный от этих проблем, в пакете java.time.