Introduzione a Java 8 Intervista Domande e risposte

Java 8 è una nuova piattaforma che è stata recentemente rilasciata con nuove librerie e classi. Principalmente queste funzionalità si concentrano sull'avere un codice più pulito e compatto. Le nuove funzionalità aggiunte in questa versione possono essere elencate come Lambda Expressions, riferimenti ai metodi, interfaccia funzionale opzionale e metodi predefiniti, API Nashorn, Stream e Date. La necessità di un cambiamento in Java era di utilizzare le attuali CPU multi-core in modo efficiente e di utilizzare le funzionalità FP.

Di seguito sono le domande più importanti poste nell'intervista:

Ora, se stai cercando un lavoro correlato a Java 8, allora devi prepararti per le domande di intervista Java 8 del 2019. È vero che ogni colloquio è diverso secondo i diversi profili professionali. Qui, abbiamo preparato le importanti domande e risposte sull'intervista a Java 8 che ti aiuteranno ad avere successo nel tuo colloquio. Queste domande di intervista sono divise in due parti:

Parte 1 - Domande di intervista a Java 8 (di base)

Questa prima parte tratta le domande e le risposte di base dell'intervista a Java 8

Q1. In che modo Java 8 è diverso dalle precedenti versioni di Java?

Risposta:
Le diverse versioni di Java sono le seguenti:

  • API data: è un'API migliorata che è immutabile API data ispirata a JodaTime.
  • API Stream: questa è una classe iteratrice speciale che aiuta a elaborare la raccolta di oggetti in modo funzionale.
  • Espressione lambda: questa è una nuova funzionalità linguistica che consente di trattare diverse azioni eseguite come oggetti.
  • Metodo di riferimento: questo aiuta a definire le espressioni Lambda facendo riferimento a diversi metodi direttamente usando i loro nomi.
  • Facoltativo: questa è una classe wrapper speciale che aiuta a specificare le funzioni opzionali.
  • Interfaccia funzionale: questa è un'interfaccia con un massimo di un metodo astratto e la sua implementazione è fornita dall'espressione Lambda
  • Motore Javascript Nashorn: è un motore basato su Java che viene utilizzato per eseguire e valutare il codice JavaScript.

Q2. È possibile implementare due interfacce con metodo predefinito con lo stesso nome e firma? Spiega con l'esempio.

Risposta:
Queste sono le domande di intervista di base su Java 8 poste in un'intervista. Si consideri il seguente codice con implementa due interfacce
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();
)
)

Qui il compilatore dà un errore dicendo che "Metodi predefiniti duplicati". Quindi non è possibile implementare due interfacce con lo stesso nome e la stessa firma.

Q3. È possibile definire la nostra interfaccia funzionale? Spiegare le regole per definire un'interfaccia funzionale.

Risposta:
È possibile definire le nostre interfacce funzionali. Un utente può utilizzare l'annotazione @FunctionalInterface di Java SE 8 per contrassegnare un'interfaccia come interfaccia funzionale. Le seguenti regole devono essere tenute presenti quando si crea un'interfaccia funzionale.

  1. È necessario definire una sola interfaccia con un solo metodo astratto
  2. Più che su metodi astratti non possono essere definiti
  3. Un utente dovrebbe utilizzare l'annotazione @FunctionalInterface nella definizione dell'interfaccia.
  4. È possibile definire un numero qualsiasi di metodi diversi come il metodo predefinito, il metodo statico, ecc.
  5. Possiamo sovrascrivere il metodo della classe java.lang.Object come metodo astratto e questo non verrà conteggiato come metodo astratto.

Passiamo alle prossime domande di intervista a Java 8.

Q4. Che cos'è Opzionale in Java 8? Spiega i suoi vantaggi.

Risposta:
Opzionale è una classe finale che viene introdotta come parte di Java SE 8. Fa parte di java.util.package. Può essere usato per rappresentare valori opzionali che esistono o non esistono. Questo può avere valore come un valore o valore zero. Se questa classe contiene un valore, otteniamo il valore altrimenti non otteniamo nulla.
I principali vantaggi di questa classe sono che può essere utilizzato per evitare controlli null e può essere utilizzato per evitare "NullPointerException".

Q5. Il codice seguente verrà compilato senza errori?

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

Sì, questo codice verrà compilato senza errori poiché segue la regola delle specifiche dell'interfaccia funzionale che definisce solo un singolo metodo astratto. Il secondo metodo utilizzato è un metodo predefinito che non aumenta il conteggio dei metodi astratti.

Parte 2 - Domande di intervista al server Java 8 (avanzate)

Diamo ora un'occhiata alle avanzate domande e risposte sull'intervista a Java 8

Q6. Che cos'è Nashorn in Java?

Risposta:
Questo è il nuovo motore di elaborazione Java per la piattaforma Java che viene fornito in Java 8. Fino a quando la piattaforma JDK 7 Java non utilizzava Rhino come motore di elaborazione. Era un motore di elaborazione Javascript. Nashorn offre una migliore conformità alle specifiche JavaScript normalizzate ECMA. Offre inoltre prestazioni di runtime migliori rispetto alle versioni precedenti.

Q7. Qual'è la differenza tra Predicate e Function?

Risposta:
Entrambe sono interfacce funzionali. Un predicato è una funzione a argomento singolo che restituisce vero o falso. Questa espressione può essere utilizzata come destinazione di assegnazione per espressione lambda o qualsiasi riferimento al metodo.
La funzione è anche una funzione a argomento singolo, ma la differenza è che restituisce un oggetto. Qui T rappresenta l'input per la funzione e R rappresenta il tipo di risultato. Entrambi possono essere usati come target di assegnazione per espressioni lambda o riferimenti a metodi.

Passiamo alle prossime domande di intervista a Java 8.

Q8. Spiegare la differenza tra operazioni intermedie e terminali.

Risposta:
Le operazioni di streaming vengono utilizzate per elaborare i flussi e combinarli. Tutte queste operazioni sono intermedie o terminali. Le operazioni intermedie restituiscono il flusso stesso e consentono ulteriori operazioni se devono essere eseguite. Queste operazioni non vengono eseguite contemporaneamente. Queste operazioni possono essere eseguite solo per elaborare i dati quando è presente un'operazione terminale. Per citare alcune operazioni, sono filtro, mappa e mappa piatta.
Le operazioni del terminale terminano la pipeline e avviano l'elaborazione del flusso. Questo flusso viene passato attraverso tutte le operazioni intermedie durante il funzionamento del terminale. Queste operazioni includono per ciascuna, ridurre, raccogliere, sommare, ecc.

Q9. Che cos'è il pipelining di stream in Java 8?

Risposta:
Questo è un avanzato 8 domande di intervista Java poste in un'intervista. È il concetto di concatenare operazioni insieme. Questo processo viene eseguito suddividendo le operazioni che possono funzionare con flussi con due categorie di operazioni intermedie e terminali. Ogni operazione intermedia restituisce un'istanza di un flusso quando viene eseguita. Ci deve essere anche un'operazione terminale che restituirà un valore finale e terminerà la pipeline.

Q10. Che cos'è StringJoiner?

Risposta:
StringJoiner è un metodo util che viene utilizzato per costruire stringhe diverse con i delimitatori desiderati. Può anche aiutare a creare sequenze di caratteri diversi separati da delimitatori. Questo è stato introdotto in Java 8. I diversi costruttori sono Public StringJoiner (delimitatore CharSequence) e Public StringJoiner (delimitatore CharSequence, prefisso CharSequence, suffisso CharSequence). Di seguito è un esempio di StringJoiner:
StringJoiner strJoiner = new StringJoiner(".");
strJoiner.add("Buggy").add("Bread");
System.out.println(strJoiner); // prints Buggy.Bread

Articolo raccomandato

Questa è stata una guida all'elenco delle domande e risposte dell'intervista a Java 8 in modo che il candidato possa reprimere facilmente queste domande sull'intervista a Java 8. Qui in questo post, abbiamo studiato le principali domande di intervista a Java 8 che vengono spesso poste nelle interviste. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Domande di intervista multi-threading Java
  2. Domande di intervista a Java EE
  3. Oops Domande sull'intervista Java
  4. Java Spring Interview Questions
  5. Novità di Java 8