Johdanto Java 8 -haastattelukysymyksiin ja -vastauksiin

Java 8 on uusi alusta, joka on hiljattain julkaistu uusilla kirjastoilla ja luokilla. Lähinnä nämä ominaisuudet keskittyvät puhtaampaan ja kompaktiin koodiin. Tässä versiossa lisätyt uudet ominaisuudet voidaan luetella Lambda-lausekkeina, menetelmäviitteinä, valinnaisina, toiminnallisena käyttöliittymänä ja oletusmenetelminä, Nashorn, Stream ja Date API. Java-muutoksen tarve oli käyttää nykyisiä moniytimisiä suorittimia tehokkaasti ja käyttää FP-ominaisuuksia.

Ohessa on tärkein haastattelussa esitetty kysymys:

Nyt, jos etsit Java 8: een liittyvää työpaikkaa, sinun on varauduttava 2019 Java 8 -haastattelukysymyksiin. On totta, että jokainen haastattelu on erilainen työprofiilien mukaan. Täällä olemme laatineet tärkeät Java 8 -haastattelukysymykset ja -vastaukset, jotka auttavat sinua menestymään haastattelussa. Nämä haastattelukysymykset on jaettu kahteen osaan seuraavasti:

Osa 1 - Java 8 -haastattelukysymykset (perus)

Tämä ensimmäinen osa kattaa Java 8 -haastattelun peruskysymykset ja vastaukset

Q1. Kuinka Java 8 eroaa aiemmista Java-versioista?

Vastaus:
Eri Java-versiot ovat seuraavat:

  • Päivämäärän API: Se on parannettu sovellusliittymä, joka on muuttumaton JodaTimen innoittama päivämäärän sovellusliittymä.
  • Stream API: Tämä on erityinen iteraattoriluokka, joka auttaa käsittelemään esineiden kokoelmaa toiminnallisella tavalla.
  • Lambda-lauseke: Tämä on uusi kieliominaisuus, joka mahdollistaa erilaisten toimintojen käsittelemisen kohteina.
  • Menetelmäviite: Tämä auttaa määrittelemään Lambda-lausekkeita viittaamalla eri menetelmiin suoraan käyttämällä niiden nimiä.
  • Valinnainen: Tämä on erityinen kääreluokka, joka auttaa valinnaisten ominaisuuksien määrittelyssä.
  • Toiminnallinen käyttöliittymä: Tämä on rajapinta, jossa on enintään yksi abstrakti menetelmä ja sen toteutuksen tarjoaa Lambda-lauseke
  • Nashorn Javascript Engine: Se on Java-pohjainen moottori, jota käytetään JavaScriptin koodin suorittamiseen ja arviointiin.

Q2. Onko mahdollista toteuttaa kaksi käyttöliittymää, joilla on oletusmenetelmä samalla nimellä ja allekirjoituksella? Selitä esimerkillä.

Vastaus:
Tämä on perushaastattelussa esitetyt Java 8 -haastattelukysymykset. Tarkastele seuraavaa koodia, jossa on kaksi rajapinta
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();
)
)

Tässä kääntäjä antaa virheen sanomalla, että ”Monista oletusmenetelmät”. Siksi kahta liitäntää, joilla on sama nimi ja allekirjoitus, ei ole mahdollista toteuttaa.

Q3. Onko mahdollista määritellä oma toiminnallinen käyttöliittymämme? Selitä säännöt toiminnallisen käyttöliittymän määrittelemiseksi.

Vastaus:
On mahdollista määritellä omat toiminnalliset rajapinnat. Käyttäjä voi käyttää Java SE 8: n @FunctionalInterface-merkintää merkitäksesi käyttöliittymäksi käyttöliittymän. Seuraavat säännöt on pidettävä mielessä luotaessa toiminnallinen käyttöliittymä.

  1. Vain yksi käyttöliittymä on määritettävä, ja siinä on vain yksi abstrakti menetelmä
  2. Enemmän kuin abstrakteja menetelmiä ei voida määritellä
  3. Käyttäjän tulisi käyttää @FunctionalInterface-merkintää rajapinnan määritelmässä.
  4. Voit määritellä minkä tahansa määrän erilaisia ​​menetelmiä, kuten oletusmenetelmää, staattista menetelmää jne.
  5. Voimme ohittaa java.lang.Object-luokan menetelmän abstraktina menetelmänä, eikä sitä lasketa abstraktiksi menetelmäksi.

Siirrymme seuraavaan Java 8 -haastattelukysymykseen.

Q4. Mikä on valinnainen Java 8: ssa? Selitä sen edut.

Vastaus:
Valinnainen on lopullinen luokka, joka otetaan käyttöön osana Java SE 8: ta. Se on osa java.util.package-sovellusta. Sitä voidaan käyttää valinnaisten arvojen esittämiseen, joita on joko olemassa tai joita ei ole. Tällä voi olla arvo yhtenä arvona tai nolla-arvo. Jos tämä luokka sisältää arvon, niin saamme arvon, josta emme saa mitään.
Tämän luokan tärkeimpiä etuja on se, että sitä voidaan käyttää tyhjentämisen estämiseksi ja sitä voidaan käyttää välttämään 'NullPointerException'.

Q5. Kokoontuuko alla oleva koodi ilman virheitä?

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

Kyllä, tämä koodi kootaan ilman virheitä, koska se noudattaa toiminnallisen rajapinnan eritelmän sääntöä, jonka mukaan vain yksi abstrakti menetelmä määritetään. Toinen käytetty menetelmä on oletusmenetelmä, joka ei lisää abstraktin menetelmän määrää.

Osa 2 - Java 8 -palvelimen haastattelukysymykset (Advanced)

Katsokaamme nyt edistyneitä Java 8 -haastattelukysymyksiä ja -vastauksia

Q6. Mikä on Nashorn Javassa?

Vastaus:
Tämä on uusi Java-prosessointimoottori Java-alustalle, joka toimitetaan Java 8: een asti. JDK 7 Java -alusta käytti Rhinoa prosessointimoottorina. Se oli Javascriptin käsittelymoottori. Nashorn tarjoaa ECMA: n normalisoidun JavaScript-eritelmän paremman noudattamisen. Se tarjoaa myös paremman suoritusajan suorituskyvyn kuin aiemmat versiot.

Q7. Mitä eroa ennusteella ja toiminnolla on?

Vastaus:
Nämä molemmat ovat toiminnallisia rajapintoja. Predikaatti on yksittäinen argumenttifunktio, joka palauttaa joko tosi tai epätosi. Tätä lauseketta voidaan käyttää osoituskohteena lambda-lausekkeelle tai mille tahansa menetelmäviitteelle.
Toiminto on myös yksi argumenttifunktio, mutta ero on siinä, että se palauttaa objektin. Tässä T edustaa funktion tuloa ja R edustaa tuloksen tyyppiä. Näitä molempia voidaan käyttää osoituskohteena lambda-lausekkeille tai menetelmäviitteille.

Siirrymme seuraavaan Java 8 -haastattelukysymykseen.

Q8. Selitä välituotteiden ja terminaalitoimintojen välinen ero.

Vastaus:
Stream-operaatioita käytetään prosessien käsittelemiseen ja yhdistämiseen. Kaikki nämä toiminnot ovat joko väli- tai päätelaitteita. Välitoiminnot palauttavat virran itse ja sallivat lisätoimenpiteet, jos ne on tarkoitus suorittaa. Näitä toimintoja ei suoriteta samanaikaisesti. Nämä toiminnot voidaan suorittaa vain datan käsittelemiseen, kun päätelaitetta käytetään. Jos haluat mainita muutaman toiminnan, ne ovat suodatin, kartta ja litteä kartta.
Terminaalitoiminnot lopettaa putkilinjan ja aloittavat virtausprosessin. Tämä virta johdetaan kaikkien välitoimintojen läpi päätelaitteen käytön aikana. Nämä toiminnot sisältävät kullekin, pienennä, kerää, summa jne.

Q9. Mikä on stream pipelining Java 8: ssa?

Vastaus:
Tämä on edistyneitä Java 8 -haastattelukysymyksiä, joita haastattelussa esitetään. Se on käsite ketjuttaa operaatiot yhdessä. Tämä prosessi suoritetaan jakamalla operaatiot, jotka voivat toimia virroilla, joissa on kaksi välitason ja pääteoperaation luokkaa. Jokainen välitoiminto palauttaa virran esiintymän, kun se suoritetaan. Lisäksi on oltava pääteoperaatio, joka palauttaa lopullisen arvon ja päättää putkilinjan.

Q10. Mikä on StringJoiner?

Vastaus:
StringJoiner on käyttömenetelmä, jota käytetään rakentamaan erilaisia ​​jousia halutuilla rajoittimilla. Se voi myös auttaa luomaan sekvenssejä eri merkkeistä, jotka on erotettu erottimilla. Tämä otettiin käyttöön Java 8. Eri rakentajat ovat Public StringJoiner (CharSequence erotin) ja Public StringJoiner (CharSequence erotin, CharSequence etuliite, CharSequence loppuliite). Alla on esimerkki StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Suositeltava artikkeli

Tämä on opas luetteloon Java 8 -haastattelukysymyksistä ja -vastauksista, jotta hakija voi helposti hajottaa nämä Java 8 -haastattelukysymykset. Täällä tässä viestissä olemme tutkineet Java 8 -haastattelukysymyksiä, joita usein kysytään haastatteluissa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Java-monisäiehaastattelukysymykset
  2. Java EE -haastattelukysymykset
  3. Hups Java -haastattelukysymyksiä
  4. Java Spring -haastattelukysymykset
  5. Mitä uutta Java 8: ssa?