Úvod do Java 8 Interview Otázky a odpovědi

Java 8 je nová platforma, která je nově vydána s novými knihovnami a třídami. Tyto funkce se většinou zaměřují na čistší a kompaktnější kód. Nové funkce přidané v této verzi lze uvést jako Lambda Expressions, odkazy na metody, volitelné, funkční rozhraní a výchozí metody, Nashorn, Stream a Date API. Nutností změny v Javě bylo efektivní využití současných vícejádrových procesorů a využití funkcí FP.

Níže jsou nejdůležitější otázky položené v rozhovoru:

Nyní, pokud hledáte práci související s Java 8, musíte se připravit na 2019 Java 8 Interview Otázky. Je pravda, že každý pohovor se liší podle různých profilů práce. Zde jsme připravili důležité otázky a odpovědi týkající se rozhovoru Java 8, které vám pomohou dosáhnout úspěchu v rozhovoru. Tyto rozhovory jsou rozděleny do dvou částí:

Část 1 - Otázky k rozhovoru Java 8 (základní)

Tato první část se zabývá základními otázkami a odpověďmi Java 8 Interview

Q1. Jak se Java 8 liší od předchozích verzí Java?

Odpovědět:
Různé verze Java jsou následující:

  • Date API: Jedná se o vylepšené API, které je neměnné JodaTime inspirované datum API.
  • Stream API: Toto je speciální třída iterátorů, která pomáhá při funkčním zpracování kolekce objektů.
  • Lambda Expression: Jedná se o novou jazykovou funkci, která umožňuje zpracovávat různé akce prováděné jako objekty.
  • Reference metod: Pomáhá při definování výrazů Lambda odkazováním na různé metody přímo pomocí jejich jmen.
  • Volitelné: Jedná se o speciální třídu obalů, která pomáhá při určování volitelných funkcí.
  • Funkční rozhraní: Jedná se o rozhraní s maximálně jedním abstraktním způsobem a jeho implementace je zajištěna Lambda výrazem
  • Nashorn Javascript Engine: Jedná se o modul založený na Java, který se používá k provádění a vyhodnocování kódu JavaScript.

Q2. Je možné implementovat dvě rozhraní, která mají výchozí metodu se stejným názvem a podpisem? Vysvětlete příklad.

Odpovědět:
Toto jsou základní otázky Java Interview položené v rozhovoru. Zvažte následující kód s implementací dvou rozhraní
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();
)
)

Zde kompilátor zobrazí chybu, která říká „Duplikovat výchozí metody“. Není tedy možné implementovat dvě rozhraní se stejným názvem a podpisem.

Q3. Je možné definovat naše vlastní funkční rozhraní? Vysvětlete pravidla pro definování funkčního rozhraní.

Odpovědět:
Je možné definovat naše vlastní funkční rozhraní. Uživatel může použít anotaci @FunctionalInterface Java SE 8 k označení rozhraní jako funkčního rozhraní. Při vytváření funkčního rozhraní je třeba mít na paměti následující pravidla.

  1. Musí být definováno pouze jedno rozhraní, které má pouze jednu abstraktní metodu
  2. Více než na abstraktní metody nelze definovat
  3. Uživatel by měl v definici rozhraní použít anotaci @FunctionalInterface.
  4. Lze definovat libovolný počet různých metod, jako je výchozí metoda, statická metoda atd.
  5. Metodu třídy java.lang.Object můžeme přepsat jako abstraktní metodu, která se nebude počítat jako abstraktní metoda.

Pojďme se přesunout k dalším otázkám rozhovoru Java 8.

Q4. Co je volitelné v jazyce Java 8? Vysvětlete jeho výhody.

Odpovědět:
Volitelné je konečná třída, která je představena jako součást Java SE 8. Je součástí java.util.package. Může být použit k reprezentaci volitelných hodnot, které buď existují, nebo neexistují. To může mít hodnotu jako jednu nebo nulovou hodnotu. Pokud tato třída obsahuje hodnotu, dostaneme hodnotu, jinak nic nedostaneme.
Mezi hlavní výhody této třídy patří to, že lze použít k zamezení nulových kontrol a lze použít k zamezení „NullPointerException“.

Q5. Zkompiluje se níže uvedený kód bez chyby?

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

Ano, tento kód se zkompiluje bez jakékoli chyby, protože se řídí pravidlem specifikace funkčního rozhraní definování pouze jedné abstraktní metody. Druhá použitá metoda je výchozí metoda, která nezvýší počet abstraktních metod.

Část 2 - Dotazy na rozhovor s serverem Java 8 (pokročilé)

Podívejme se nyní na pokročilé dotazy a odpovědi na rozhovor v jazyce Java 8

Q6. Co je Nashorn v Javě?

Odpovědět:
Toto je nový procesor pro zpracování Java pro platformu Java, který je dodáván v Javě 8. Dokud Java platforma JDK 7 nepoužívala Rhino jako procesor pro zpracování. Byl to stroj na zpracování Javascriptu. Nashorn poskytuje lepší soulad s normou JavaScript normalizovanou ECMA. Poskytuje také lepší běhový výkon než předchozí verze.

Q7. Jaký je rozdíl mezi predikátem a funkcí?

Odpovědět:
Oba jsou funkční rozhraní. Predikát je funkce jediného argumentu, která vrací buď true, nebo false. Tento výraz lze použít jako cíl přiřazení pro lambda výraz nebo jakýkoli odkaz na metodu.
Funkce je také funkce jediného argumentu, ale rozdíl je v tom, že vrací objekt. Zde T představuje vstup do funkce a R představuje typ výsledku. Oba tyto mohou být použity jako cíl přiřazení pro lambda výrazy nebo odkazy na metody.

Pojďme se přesunout k dalším otázkám rozhovoru Java 8.

Q8. Vysvětlete rozdíl mezi prostředními a terminálovými operacemi.

Odpovědět:
Streamové operace se používají ke zpracování toků a jejich kombinování. Všechny tyto operace jsou buď přechodné, nebo terminálové. Mezilehlé operace vracejí samotný Stream a umožňují další operace, pokud mají být provedeny. Tyto operace se neprovádějí současně. Tyto operace mohou být prováděny pouze ke zpracování dat, když je operace terminálu. Pro vyjmenování několika operací jsou to filtr, mapa a plochá mapa.
Operace terminálu ukončují potrubí a zahajují zpracování toku. Tento tok prochází všemi mezilehlými operacemi během provozu terminálu. Tyto operace zahrnují pro každého, snížení, shromažďování, součet atd.

Q9. Co je to potrubní rozvody v Java 8?

Odpovědět:
Toto jsou pokročilé dotazy na rozhovor v jazyce Java 8, které byly položeny v rozhovoru. Je to koncept řetězení operací společně. Tento proces se provádí dělením operací, které mohou pracovat s toky se dvěma kategoriemi mezilehlých a terminálních operací. Každá mezilehlá operace vrací instanci proudu, když je spuštěna. Musí také existovat operace terminálu, která vrátí konečnou hodnotu a ukončí potrubí.

Q10. Co je StringJoiner?

Odpovědět:
StringJoiner je metoda využití, která se používá ke konstrukci různých řetězců s požadovanými oddělovači. Může také pomoci při vytváření posloupností různých znaků oddělených oddělovači. Toto bylo představeno v jazyce Java 8. Různí konstruktéři jsou Public StringJoiner (oddělovač CharSequence) a Public StringJoiner (oddělovač CharSequence, předpona CharSequence, přípona CharSequence). Níže je příklad StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Doporučený článek

Toto byl průvodce seznamem otázek a odpovědí na rozhovor v jazyce Java 8, aby uchazeč mohl tyto dotazy na rozhovor v jazyce Java 8 snadno zakročit. Zde v tomto příspěvku jsme studovali top otázek rozhovoru Java 8, které se často kladou v rozhovorech. Další informace naleznete také v následujících článcích -

  1. Dotazy na rozhovor s více vlákny Java
  2. Dotazy na rozhovor Java EE
  3. Jejda na otázky rozhovoru Java
  4. Java Spring Interview Otázky
  5. Co je nového v Java 8?

Kategorie: