Wprowadzenie do Java 8 Wywiad Pytania i odpowiedzi

Java 8 to nowa platforma, która została niedawno wydana z nowymi bibliotekami i klasami. Głównie te funkcje skupiają się na czystszym i kompaktowym kodzie. Nowe funkcje dodane w tej wersji można wymienić jako Wyrażenia Lambda, odwołania do metod, opcjonalne, interfejs funkcjonalny i metody domyślne, Nashorn, Stream i Date API. Potrzebą zmiany w Javie było efektywne wykorzystanie obecnych procesorów wielordzeniowych i wykorzystanie funkcji FP.

Poniżej znajdują się najważniejsze pytania zadane w wywiadzie:

Teraz, jeśli szukasz pracy związanej z Javą 8, musisz przygotować się na pytania dotyczące wywiadu Java 8 w 2019 r. Prawdą jest, że każda rozmowa kwalifikacyjna jest inna w zależności od profilu pracy. Tutaj przygotowaliśmy ważne pytania i odpowiedzi do wywiadu Java 8, które pomogą Ci odnieść sukces w rozmowie. Te pytania do rozmowy kwalifikacyjnej są podzielone na dwie części:

Część 1 - Pytania do wywiadu Java 8 (podstawowe)

Ta pierwsza część obejmuje podstawowe pytania i odpowiedzi do wywiadu Java 8

Pytanie 1 Czym różni się Java 8 od poprzednich wersji Java?

Odpowiedź:
Różne wersje Java są następujące:

  • Data API: jest to ulepszony interfejs API, który jest niezmiennym interfejsem API daty inspirowanym JodaTime.
  • Stream API: Jest to specjalna klasa iteratora, która pomaga w przetwarzaniu kolekcji obiektów w sposób funkcjonalny.
  • Wyrażenie lambda: Jest to nowa funkcja językowa, która pozwala traktować różne akcje wykonywane jako obiekty.
  • Odniesienia do metod: Pomaga to w definiowaniu wyrażeń Lambda poprzez bezpośrednie odwoływanie się do różnych metod za pomocą ich nazw.
  • Opcjonalne: Jest to specjalna klasa opakowania, która pomaga w określaniu opcjonalnych funkcji.
  • Interfejs funkcjonalny: jest to interfejs z maksymalnie jedną metodą abstrakcyjną, a jego implementację zapewnia wyrażenie Lambda
  • Silnik JavaScript Nashorn: jest to silnik oparty na Javie, który służy do wykonywania i oceny kodu JavaScript.

Q2 Czy można zaimplementować dwa interfejsy z domyślną metodą o tej samej nazwie i podpisie? Wyjaśnij na przykładzie.

Odpowiedź:
To są podstawowe pytania do wywiadu Java 8 zadawane podczas wywiadu. Rozważ następujący kod z implementacją dwóch interfejsów
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();
)
)

Tutaj kompilator podaje błąd, mówiąc: „Duplikuj domyślne metody”. Dlatego nie jest możliwe wdrożenie dwóch interfejsów o tej samej nazwie i podpisie.

Pytanie 3 Czy można zdefiniować własny interfejs funkcjonalny? Wyjaśnij zasady definiowania funkcjonalnego interfejsu.

Odpowiedź:
Możliwe jest zdefiniowanie własnych interfejsów funkcjonalnych. Użytkownik może użyć adnotacji @FunctionalInterface Java SE 8, aby oznaczyć interfejs jako interfejs funkcjonalny. Podczas tworzenia funkcjonalnego interfejsu należy pamiętać o następujących zasadach.

  1. Należy zdefiniować tylko jeden interfejs z tylko jedną metodą abstrakcyjną
  2. Nie można zdefiniować więcej niż metod abstrakcyjnych
  3. Użytkownik powinien skorzystać z adnotacji @FunctionalInterface w definicji interfejsu.
  4. Można zdefiniować dowolną liczbę różnych metod, takich jak metoda domyślna, metoda statyczna itp.
  5. Możemy zastąpić metodę klasy java.lang.Object jako metodę abstrakcyjną i nie będzie to liczone jako metoda abstrakcyjna.

Przejdźmy do następnych pytań do wywiadu Java 8.

Pytanie 4 Co jest opcjonalne w Javie 8? Wyjaśnij jego zalety.

Odpowiedź:
Opcjonalna jest ostatnią klasą, która jest wprowadzana jako część Java SE 8. Jest ona częścią java.util.package. Można go użyć do przedstawienia opcjonalnych wartości, które albo istnieją, albo nie istnieją. Może mieć wartość jako jedna wartość lub wartość zero. Jeśli ta klasa zawiera wartość, to otrzymamy wartość, w przeciwnym razie nic nie otrzymamy.
Głównymi zaletami tej klasy jest to, że można jej użyć w celu uniknięcia kontroli zerowej i można jej użyć w celu uniknięcia „NullPointerException”.

Pytanie 5 Czy poniższy kod zostanie skompilowany bez błędów?

Odpowiedź:
@FunctionalInterface
public interface Function2 (
public V apply(T t, U u);
default void count() (
// increment counter
)
)

Tak, ten kod zostanie skompilowany bezbłędnie, ponieważ jest zgodny z zasadą specyfikacji interfejsu funkcjonalnego definiującą tylko jedną metodę abstrakcyjną. Druga stosowana metoda jest metodą domyślną, która nie zwiększa liczby metod abstrakcyjnych.

Część 2 - pytania do wywiadu z serwerem Java 8 (zaawansowane)

Przyjrzyjmy się teraz zaawansowanym pytaniom i odpowiedziom do wywiadu w języku Java 8

Pytanie 6 Co to jest Nashorn w Javie?

Odpowiedź:
Jest to nowy silnik przetwarzania Java dla platformy Java, który jest dostarczany w Javie 8. Do czasu JDK 7 platforma Java używała Rhino jako silnika przetwarzania. Był to silnik przetwarzający Javascript. Nashorn zapewnia lepszą zgodność ze znormalizowaną specyfikacją JavaScript ECMA. Zapewnia również lepszą wydajność środowiska wykonawczego niż poprzednie wersje.

Pytanie 7 Jaka jest różnica między predykatem a funkcją?

Odpowiedź:
Oba są interfejsami funkcjonalnymi. Predykat jest funkcją pojedynczego argumentu, która zwraca wartość true lub false. To wyrażenie może być użyte jako cel przypisania dla wyrażenia lambda lub dowolnego odwołania do metody.
Funkcja jest także funkcją pojedynczego argumentu, ale różnica polega na tym, że zwraca obiekt. Tutaj T reprezentuje dane wejściowe do funkcji, a R reprezentuje typ wyniku. Oba mogą być użyte jako cel przypisania dla wyrażeń lambda lub referencji metod.

Przejdźmy do następnych pytań do wywiadu Java 8.

Pytanie 8 Wyjaśnij różnicę między operacjami pośrednimi i terminalowymi.

Odpowiedź:
Operacje strumieniowe służą do przetwarzania strumieni i łączenia ich. Wszystkie te operacje są pośrednie lub końcowe. Operacje pośrednie zwracają sam strumień i pozwalają na dalsze operacje, jeśli mają zostać wykonane. Te operacje nie są wykonywane w tym samym czasie. Operacje te można wykonywać tylko w celu przetwarzania danych, gdy występuje operacja terminalowa. Aby wymienić kilka operacji, są to: filtr, mapa i płaska mapa.
Operacje terminalowe kończą potok i inicjują przetwarzanie strumienia. Ten strumień jest przepuszczany przez wszystkie operacje pośrednie podczas operacji terminalowej. Operacje te obejmują dla każdego, zmniejszanie, zbieranie, sumowanie itp.

Pytanie 9 Co to jest potokowanie strumieniowe w Javie 8?

Odpowiedź:
To jest zaawansowane Pytania do wywiadu Java 8 zadawane podczas wywiadu. Jest to koncepcja łączenia operacji w łańcuch. Proces ten polega na dzieleniu operacji, które mogą pracować ze strumieniami z dwiema kategoriami operacji pośrednich i terminalowych. Każda operacja pośrednia zwraca instancję strumienia po uruchomieniu. Musi także istnieć operacja terminalowa, która zwróci ostateczną wartość i zakończy rurociąg.

P10 Co to jest StringJoiner?

Odpowiedź:
StringJoiner to metoda util, która służy do konstruowania różnych ciągów z pożądanymi ogranicznikami. Może także pomóc w tworzeniu sekwencji różnych znaków oddzielonych ogranicznikami. Zostało to wprowadzone w Javie 8. Różne konstruktory to Public StringJoiner (ogranicznik CharSequence) i Public StringJoiner (ogranicznik CharSequence, prefiks CharSequence, sufiks CharSequence). Poniżej znajduje się przykład StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Polecany artykuł

Jest to przewodnik po liście pytań i odpowiedzi do wywiadu w języku Java 8, dzięki czemu kandydat może łatwo przełamać te pytania podczas wywiadu w języku Java 8. W tym poście przeanalizowaliśmy najważniejsze pytania do wywiadu w języku Java 8, które często zadawane są w wywiadach. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Java Wywiad wielowątkowy Java
  2. Pytania do wywiadu Java EE
  3. Oops Java Interview Questions
  4. Java Spring Interview Questions
  5. Co nowego w Javie 8?