Java 8 sissejuhatus intervjuu küsimustesse ja vastustesse

Java 8 on uus platvorm, mis on värskelt välja antud koos uute raamatukogude ja klassidega. Enamasti keskenduvad need funktsioonid puhtamale ja kompaktsele koodile. Sellesse versiooni lisatud uued funktsioonid võib loetleda kui Lambda avaldised, meetodiviited, valikulised, funktsionaalne liides ja vaikemeetodid, Nashorn, Stream ja Date API. Java muutmise vajadus oli praeguste mitmetuumaliste protsessorite efektiivne kasutamine ja FP funktsioonide kasutamine.

Allpool on toodud kõige olulisem intervjuus küsitav küsimus:

Kui otsite Java 8-ga seotud tööd, peate valmistuma 2019. aasta Java 8-i intervjuuküsimusteks. On tõsi, et iga vestlus on erinevate tööprofiilide järgi erinev. Oleme siin koostanud olulised Java 8 intervjuu küsimused ja vastused, mis aitavad teil intervjuus edu saavutada. Need intervjuuküsimused on jagatud kahte ossa:

1. osa - Java 8 intervjuu küsimused (põhilised)

See esimene osa hõlmab Java 8 intervjuu põhiküsimusi ja vastuseid

Q1. Kuidas erineb Java 8 varasematest Java versioonidest?

Vastus:
Erinevad Java versioonid on järgmised:

  • Kuupäeva API: see on täiustatud API, mis on muutumatu JodaTime inspireeritud kuupäeva API.
  • Voo API: see on spetsiaalne iteraatoriklass, mis aitab objektide kogumist funktsionaalselt töödelda.
  • Lambda avaldis: see on uus keelefunktsioon, mis võimaldab käsitleda erinevaid toiminguid objektidena.
  • Meetodi viide: see aitab määratleda Lambda avaldisi, viidates erinevatele meetoditele otse nende nime kasutades.
  • Valikuline: see on spetsiaalne ümbrisklass, mis aitab täpsustada valikulisi funktsioone.
  • Funktsionaalne liides: see on maksimaalselt ühe abstraktse meetodiga liides ja selle rakendamist pakub Lambda avaldis
  • Nashorn Javascripti mootor: see on Java-põhine mootor, mida kasutatakse JavaScripti koodi täitmiseks ja hindamiseks.

Q2. Kas on võimalik rakendada kahte liidest, millel on sama nime ja allkirjaga vaikemeetod? Selgitage näitega.

Vastus:
See on Java 8 intervjuu põhiküsimus, mida intervjuus küsiti. Kaaluge järgmist koodi koos kahe liidesega
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();
)
)

Siin annab kompilaator vea, öeldes: “Duplicate Default Methods”. Seetõttu ei ole võimalik kahte sama nime ja allkirjaga liidest rakendada.

Q3. Kas on võimalik määratleda meie enda funktsionaalne liides? Selgitage funktsionaalse liidese määratlemise reegleid.

Vastus:
On võimalik määratleda oma funktsionaalsed liidesed. Kasutaja saab liidese funktsionaalseks liideseks märkimiseks kasutada Java SE 8 @FunctionalInterface märkust. Funktsionaalse liidese loomisel tuleb meeles pidada järgmisi reegleid.

  1. Määrata tuleb ainult üks liides, millel on ainult üks abstraktne meetod
  2. Rohkem kui abstraktseid meetodeid ei saa määratleda
  3. Kasutaja peaks liidese määratluses kasutama märkust @FunctionalInterface.
  4. Määratleda saab suvalist arvu erinevaid meetodeid, näiteks vaikemeetod, staatiline meetod jne.
  5. Me võime java.lang.Objekti klassi meetodi abstraktse meetodina alistada ja seda ei arvestata abstraktse meetodina.

Liigume järgmiste Java 8 intervjuuküsimuste juurde.

Q4. Mis on Java 8-s valikuline? Selgitage selle eeliseid.

Vastus:
Valikuline on lõpuklass, mis tutvustatakse Java SE 8 osana. See on osa java.util.package. Seda saab kasutada valikuliste väärtuste esitamiseks, mis kas eksisteerivad või puuduvad. Selle väärtus võib olla üks väärtus või null. Kui see klass sisaldab väärtust, siis saame väärtuse, kui me ei saa midagi.
Selle klassi peamised eelised on see, et seda saab kasutada nullkontrolli vältimiseks ja seda saab kasutada 'NullPointerException' vältimiseks.

Q5. Kas allolev kood kompileeritakse vigadeta?

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

Jah, see kood kompileeritakse ilma tõrgeteta, kuna see järgib funktsionaalse liidese spetsifikatsiooni reeglit, mis määratleb ainult ühe abstraktse meetodi. Teine meetod, mida kasutatakse, on vaikimisi meetod, mis ei suurenda abstraktse meetodi arvu.

2. osa - Java 8 serveri intervjuu küsimused (täpsemad)

Vaatame nüüd täiustatud Java 8 intervjuu küsimusi ja vastuseid

Q6. Mis on Java-s Nashorn?

Vastus:
See on uus Java-töötlusmootor Java platvormile, mis tarnitakse Java 8-s. Kuni JDK 7 Java-platvorm kasutas töötlemismootorina Rhino. See oli Javascripti töötlemise mootor. Nashorn tagab ECMA normaliseeritud JavaScripti spetsifikatsiooni parema järgimise. See pakub ka paremat tööaega kui eelmised versioonid.

Q7. Mis vahe on ennustamisel ja funktsioonil?

Vastus:
Mõlemad on funktsionaalsed liidesed. Predikaat on üks argumendifunktsioon, mis tagastab kas õige või vale. Seda avaldist saab kasutada lambda avaldise määramise sihtmärgina või mis tahes meetodi viitena.
Funktsioon on ka üks argumentfunktsioon, kuid erinevus seisneb selles, et ta tagastab objekti. T tähistab funktsiooni sisendit ja R tähistab tulemuse tüüpi. Neid mõlemaid saab kasutada lambda-avaldiste või meetodiviidete määramise sihtmärgina.

Liigume järgmiste Java 8 intervjuuküsimuste juurde.

Q8. Selgitage vahe- ja terminalioperatsioonide erinevust.

Vastus:
Voo operatsioone kasutatakse voogude töötlemiseks ja nende ühendamiseks. Kõik need toimingud on kas vahe- või lõpptoimingud. Vahepealsed toimingud tagastavad voo ise ja võimaldavad neid täiendavate toimingute tegemisel. Neid toiminguid ei tehta samal ajal. Neid toiminguid saab teha ainult andmete töötlemiseks, kui on olemas terminali toiming. Mõne toimingu nimetamiseks on need filter, kaart ja tasane kaart.
Terminalitoimingud lõpetavad torujuhtme ja algatavad voo töötlemise. See voog juhitakse terminali töö ajal läbi kõigi vaheoperatsioonide. Need toimingud hõlmavad igaühte, vähendavad, koguvad, summeerivad jne.

Q9. Mis on Java 8 voojuhtimine?

Vastus:
See on arenenud Java 8 intervjuu küsimused, mida küsiti intervjuus. See on operatsioonide aheldamise kontseptsioon. See protsess toimub operatsioonide tükeldamise teel, mis võivad töötada voogudes, mis hõlmavad kahte kategooria vahe- ja terminalioperatsiooni. Iga vaheoperatsioon tagastab voo eksemplari, kui see töötab. Samuti peab toimuma terminalioperatsioon, mis tagastab lõppväärtuse ja lõpetab torujuhtme.

Q10. Mis on StringJoiner?

Vastus:
StringJoiner on kasutusmeetod, mida kasutatakse erinevate eralduspiiridega keelpillide konstrueerimiseks. See võib aidata luua ka piiritlejatega eraldatud erinevate märkide jadasid. See võeti kasutusele Java 8. Eri konstruktoriteks on Public StringJoiner (CharSequence eraldaja) ja Public StringJoiner (CharSequence eraldaja, CharSequence eesliide, CharSequence järelliide). Allpool on StringJoiner näide:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Soovitatav artikkel

See on juhend Java 8 intervjuu küsimuste ja vastuste loendisse, et kandidaat saaks neid Java 8 intervjuuküsimusi hõlpsalt lahendada. Selles postituses oleme uurinud Java 8 peamisi intervjuuküsimusi, mida sageli küsitakse intervjuudes. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Java mitme lõimega intervjuu küsimused
  2. Java EE intervjuu küsimused
  3. Vabandust Java intervjuuküsimuste suhtes
  4. Java Spring Intervjuu küsimused
  5. Mida uut on Java 8-s?