Введение в Java 8 Вопросы и ответы для интервью

Java 8 - это новая платформа, недавно выпущенная с новыми библиотеками и классами. В основном эти функции направлены на создание более чистого и компактного кода. Новые функции, добавленные в этой версии, могут быть перечислены как лямбда-выражения, ссылки на методы, опционально, функциональный интерфейс и методы по умолчанию, Nashorn, Stream и Date API. Необходимость изменений в Java заключалась в том, чтобы эффективно использовать современные многоядерные процессоры и использовать функции FP.

Ниже приведены наиболее важные вопросы, заданные в интервью:

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

Часть 1 - Java 8 Интервью Вопросы (Базовый)

Эта первая часть охватывает основные вопросы и ответы по Java 8 Interview.

Q1. Чем Java 8 отличается от предыдущих версий Java?

Ответ:
Различные версии Java следующие:

  • API даты: это улучшенный API, который является неизменяемым API даты, вдохновленным JodaTime.
  • Stream API: это специальный класс итератора, который помогает в функциональной обработке коллекции объектов.
  • Лямбда-выражение: это новая языковая функция, которая позволяет рассматривать различные действия, выполняемые как объекты.
  • Справочник по методам : это помогает в определении лямбда-выражений, обращаясь к различным методам напрямую, используя их имена.
  • Необязательно: Это специальный класс-обертка, который помогает указать дополнительные функции.
  • Функциональный интерфейс: это интерфейс с максимум одним абстрактным методом, и его реализация обеспечивается лямбда-выражением
  • Nashorn Javascript Engine: это движок на основе Java, который используется для выполнения и оценки кода JavaScript.

Q2. Можно ли реализовать два интерфейса с методом по умолчанию с одинаковыми именем и подписью? Поясните с примером.

Ответ:
Это основные вопросы интервью с Java 8, задаваемые в интервью. Рассмотрим следующий код с двумя интерфейсами
public interface DefaultMethodInterface (
default public void defaultMethod()(
System.out.println("I am in Default method Interface I");
)
)
public interface DefaultMethodInterface2 (
default public void defaultMethod()(
System.out.println("I am in Default method Interface II");
)
)
public class HelloJava8 implements DefaultMethodInterface, DefaultMethodInterface2 (
public static void main(String() args)(
DefaultMethodInterface defMethIn = new HelloJava();
defMethIn.defaultMethod();
)
)

Здесь компилятор выдает ошибку, говоря, что «Дублировать Методы по умолчанию». Следовательно, невозможно реализовать два интерфейса с одинаковым именем и подписью.

Q3. Можно ли определить наш собственный функциональный интерфейс? Объясните правила для определения функционального интерфейса.

Ответ:
Можно определить наши собственные функциональные интерфейсы. Пользователь может использовать аннотацию @FunctionalInterface Java SE 8, чтобы пометить интерфейс как функциональный интерфейс. При создании функционального интерфейса необходимо учитывать следующие правила.

  1. Должен быть определен только один интерфейс, имеющий только один абстрактный метод
  2. Больше чем на абстрактных методах определить нельзя
  3. Пользователь должен использовать аннотацию @FunctionalInterface в определении интерфейса.
  4. Можно определить любое количество различных методов, таких как метод по умолчанию, статический метод и т. Д.
  5. Мы можем переопределить метод класса java.lang.Object как абстрактный метод, и он не будет учитываться как абстрактный метод.

Давайте перейдем к следующему Вопросу интервью по Java 8.

Q4. Что необязательно в Java 8? Объясните его преимущества.

Ответ:
Необязательный класс final, который представлен как часть Java SE 8. Он является частью java.util.package. Его можно использовать для представления необязательных значений, которые либо существуют, либо не существуют. Это может иметь значение как одно значение или нулевое значение. Если этот класс содержит значение, то мы получаем значение, иначе мы ничего не получаем.
Основными преимуществами этого класса является то, что его можно использовать, чтобы избежать нулевых проверок, и его можно использовать, чтобы избежать 'NullPointerException'.

Q5. Будет ли приведенный ниже код компилироваться без ошибок?

Ответ:
@FunctionalInterface
public interface Function2 (
public V apply(T t, U u);
default void count() (
// increment counter
)
)

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

Часть 2 - Вопросы по собеседованию на сервере Java 8 (Advanced)

Давайте теперь посмотрим на расширенные вопросы и ответы по интервью для Java 8

Q6. Что такое Нашорн на Яве?

Ответ:
Это новый механизм обработки Java для платформы Java, который поставляется в Java 8. До JDK 7 платформа Java использовала Rhino в качестве механизма обработки. Это был механизм обработки Javascript. Nashorn обеспечивает лучшее соответствие нормированной спецификации ECMA JavaScript. Он также обеспечивает лучшую производительность во время выполнения, чем его предыдущие версии.

Q7. В чем разница между предикатом и функцией?

Ответ:
Оба это функциональные интерфейсы. Предикат - это функция с одним аргументом, которая возвращает true или false. Это выражение может использоваться как цель назначения для лямбда-выражения или любой ссылки на метод.
Функция также является функцией с одним аргументом, но разница здесь в том, что она возвращает объект. Здесь T представляет входные данные для функции, а R представляет тип результата. Оба они могут быть использованы в качестве цели назначения для лямбда-выражений или ссылок на методы.

Давайте перейдем к следующему Вопросу интервью по Java 8.

Q8. Объясните разницу между промежуточными и терминальными операциями.

Ответ:
Потоковые операции используются для обработки потоков и их объединения. Все эти операции являются промежуточными или терминальными. Промежуточные операции возвращают сам поток и разрешают дальнейшие операции, если они должны быть выполнены. Эти операции не выполняются одновременно. Эти операции могут выполняться только для обработки данных, когда есть операция терминала. Чтобы назвать несколько операций, это фильтр, карта и плоская карта.
Терминальные операции завершают конвейер и инициируют обработку потока. Этот поток проходит через все промежуточные операции во время работы терминала. Эти операции включают для каждого, уменьшить, собрать, сумма и т. Д.

Q9. Что такое потоковая конвейерная обработка в Java 8?

Ответ:
Это расширенный Java 8 Интервью Вопросы, задаваемые в интервью. Это концепция объединения операций. Этот процесс выполняется путем разделения операций, которые могут работать с потоками с двумя категориями промежуточных и терминальных операций. Каждая промежуточная операция возвращает экземпляр потока при запуске. Также должна быть операция терминала, которая возвратит окончательное значение и завершит конвейер.

В10. Что такое StringJoiner?

Ответ:
StringJoiner - это метод util, который используется для создания различных строк с желаемыми разделителями. Это может также помочь в создании последовательностей различных символов, разделенных разделителями. Это было введено в Java 8. Различные конструкторы: Public StringJoiner (разделитель CharSequence) и Public StringJoiner (разделитель CharSequence, префикс CharSequence, суффикс CharSequence). Ниже приведен пример StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Рекомендуемая статья

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

  1. Java Многопоточность Интервью Вопросы
  2. Java EE Интервью Вопросы
  3. Упс Java вопросы интервью
  4. Java Spring Интервью Вопросы
  5. Что нового в Java 8?