Top 50 des questions et réponses des entretiens avec Java 8

2 janvier 2022

Table des matières

Portée d'un développeur Java ?

La portée du travail des développeurs Java est large car ils effectuent des tâches allant de la conception des interfaces utilisateur (UI) au test des applications dynamiques. En raison de la large gamme de Java, les développeurs qui travaillent avec Java doivent collaborer avec d'autres professionnels tels que les concepteurs Web et les ingénieurs logiciels.

Vous préparez un Java 8 Entrevue? Cherchez-vous des questions et réponses d'entrevue Java 8, alors vous êtes sur la bonne page. Assurez-vous de passer en revue toutes les questions afin de ne manquer aucune d'entre elles.



Questions et réponses d'entrevue Java 8

1) Qu'est-ce que JAVA 8 ?

C'est l'une des plates-formes d'édition standard du kit de développement Java, qui comprend diverses fonctionnalités dans les capacités de programmation Java. Il implémente les fondamentaux de la programmation fonctionnelle et Oups . C'est la dernière version de Java. La bibliothèque standard de Java 8 a quelques fonctionnalités améliorées. Il contient de nombreuses corrections de bogues et améliorations par rapport aux versions précédentes de Java

2) Quelles sont les fonctionnalités de Java 8 ?

De nombreuses fonctionnalités nouvelles et exclusives sont ajoutées dans Java 8 : -

  1. Méthodes d'extension virtuelle et expression Lambda
  2. API de date et d'heure disponible
  3. Moteur JavaScript Nashorn – il est léger. (pour exécuter du code Javascript)
  4. Améliorer la sécurité (partie du nashorn en Java)
  5. API de flux
  6. Interfaces fonctionnelles
  7. API de collecte
Questions d'entretiens sur Java 8

3) Pourquoi devrions-nous opter pour l'API Java 8 Stream ? Quelle est l'utilisation de Java 8 Stream API dans nos projets ?

Chaque fois que nous voulons exécuter les fonctions suivantes, l'API Java 8 Stream est pratique : -

  1. Opérations de base de données
  2. Chargement paresseux de l'application
  3. Mise en œuvre de la programmation fonctionnelle
  4. Utilisation du style d'itération interne
  5. Exécuter des opérations à partir du pipeline
  6. Améliorer les performances de l'application

Questions et réponses d'entrevue Java

4) Qu'est-ce que l'inférence de type ? L'inférence de type est-elle disponible dans les anciennes versions telles que Java 7 et Before 7, ou est-elle disponible uniquement dans Java SE 8 ?

Dans l'inférence de type pour Java, il a la capacité d'examiner chaque méthode et ses déclarations écrites dans le code. Il identifie les arguments passés dans la fonction. L'inférence de type était également disponible dans les anciennes versions de Java (avant 7). Cependant, il existe des améliorations significatives dans Java SE 8.

Voir également Top 100 des questions et réponses d'entrevue JavaScript

5) Pouvez-vous faire la différence entre Iterator et Spliterator dans Java SE 8 ?

La réponse ci-dessous indique les différences entre les termes suivants - itérateur et splieratro dans Java 8.

Itérateur Séparateur
Cela fonctionne avec juste des itérationsIl fonctionne avec les séparateurs et les itérations
Il fonctionne avec interaction de manière séquentielle (un par un)Il peut fonctionner de manière séquentielle ou tout à la fois.
Utilisé pour les types de collectionIl est utilisé pour les collections, les flux et les tableaux.
Il n'y a aucun moyen de déterminer la tailleLa taille estimée est la taille réelle
Fait partie de la version JDK 1.2Il a été introduit pour la première fois dans la version JDK 1.8

6) Qu'est-ce qui est facultatif dans Java 8 ? A quoi sert Facultatif ? Avantages de Java 8 En option ?

Afin de répondre à cette question, nous allons examiner les détails complexes. L'exception de pointeur null a toujours été problématique en Java. Cela a très certainement causé le plantage du code très souvent. Nashorn dans Java 8 a une amélioration ou plus comme une solution au problème. Il a introduit une nouvelle classe facultative appelée package java.util. Cela fonctionne essentiellement pour éviter les vérifications nulles. Il propose des alternatives aux fonctions renvoyant des valeurs nulles. Le morceau de code suivant montre l'implémentation de la même chose.

|__+_|

7) Qu'est-ce qu'une expression lambda ?

L'expression lambda a été récemment ajoutée à la version Java 8. L'expression Lambda fonctionne en prenant les paramètres avec leurs arguments. Dans votre réponse, mentionnez également l'alternative à cette méthode.

paramètre -> expression // expression lambda simple

(paramètreA, paramètreB) -> expression // peut utiliser plus de paramètres dans cette expression lambda

Utilisation de l'expression lambda

|__+_|

8) Qu'est-ce qu'une interface fonctionnelle ? Qu'est-ce que l'interface SAM ?

L'interface de fonction n'a qu'une seule abstraction dans l'interface. Une autre réponse pourrait être que le nom alternatif d'une interface fonctionnelle est SAM - interface de méthode abstraite unique.

Voici la syntaxe pour le même

|__+_|

Exemple

|__+_| |__+_|

9) Énumérez les trois parties d'une expression Lambda ? Définir le type d'expression Lambda ?

La réponse suivante est divisée en trois parties de l'expression lambda.

  1. Liste de paramètres - l'expression lambda peut avoir de 0 à plusieurs paramètres.
  2. Opérateur de flèche lambda
  3. Corps d'expression lambda

Le type de données dans l'expression lambda peut être n'importe quoi, de int, float à strings.

Questions et réponses d'entrevue Java 8

10) Qu'est-ce que le Stream Pipelining dans Java 8 ?

Un flux en Java a les éléments suivants

  1. Séquence d'éléments
  2. La source
  3. Opérations agrégées
  4. Canalisation
  5. Itérations automatiques

Pipelining dans Java 8 – Les résultats sont pipelinés par la valeur renvoyée par un flux. Les opérations sont la partie intermédiaire de la fonction. Il capture l'entrée, puis la traite, et la valeur est collectée dans la méthode target.collect() qui prend l'entrée finale. L'ensemble de ce processus fait partie du pipeline de flux Java.

11) Qu'est-ce que String::Value of Expression ?

La valeur de chaîne de l'expression permet aux utilisateurs de lire facilement les données. Il convertit les données. Par example:-

  1. La valeur de chaîne de (num) - cela aidera à la visualisation d'une chaîne de la valeur numérique.
  2. La valeur de chaîne de (données, 0, 11) - Elle affichera un tableau commençant de 0 à 11.

12) Pouvez-vous différencier les opérations intermédiaires et terminales ?

Le tableau ci-dessous établit une comparaison entre les opérations intermédiaires et terminales.

Opérations intermédiaires Opérations terminales
Cela aide à convertir les méthodes en flux.Il s'agit essentiellement de l'opération finale qu'une méthode impose à un flux.
Ce qu'il renvoie est un autre fluxCe qu'il renvoie est le résultat final
trié(Comparateur)peek(Consumer)distinct()forEachcounttoArray

13) Qu'est-ce que le Nashorn en Java8 ?

En java 8, nashborn est un moteur qui a été amélioré avec une série de versions en java. À chaque version, le moteur comporte de nombreuses améliorations. Il améliore fondamentalement les performances et est léger par rapport aux versions précédentes. Il a des fonctionnalités beaucoup plus dynamiques. Jjs est un outil de commande utilisé pour exécuter n'importe quel code javascript.

Voir également Top 100 des questions et réponses d'entrevue Ansible

Par example:-

|__+_|

14) Pouvez-vous nous parler de la nouvelle API de date et d'heure dans Java 8 ?

Avec la fonction date-heure précédente, Java avait de nombreux problèmes comme -

  1. Ce n'était pas thread-safe.
  2. La conception n'était pas uniforme.
  3. Il était difficile de gérer différents fuseaux horaires.

Ces problèmes (thread-safe) ont été résolus grâce à la nouvelle API de date et d'heure de Java 8. Elle a simplifié les packages traitant des écarts liés au temps. Les fonctions suivantes ont été créées - local (pour la date-heure) et zoné (pour la cartographie des fuseaux horaires).

15) Qu'est-ce qu'une référence de méthode ?

Cette nouvelle fonctionnalité de Java 8 (méthode de référence) aide à faire référence aux interfaces fonctionnelles. Elle est similaire à l'expression lambda. Les expressions lambda font essentiellement référence à des objets et des méthodes. Au lieu de cela, des références de méthode peuvent également être utilisées.

Référence de la méthode

Par example

|__+_|

16) Définir la méthode par défaut et quand l'utiliser ?

Cette méthode par défaut a été introduite dans Java 8 pour augmenter la compatibilité avec certaines anciennes versions qui effectuaient quelques fonctions en arrière. Ceci est utilisé pour les implémentations d'interfaces en java. Le forEach() peut être utilisé pour une collection d'objets de variables. Java 8 a permis l'utilisation de méthodes par défaut qui peuvent implémenter des fonctions comme la méthode forEach().

Exemple:

|__+_|

17) Comment convertir un tableau en flux en Java 8 ?

Code suivant qui montre le moyen le plus simple de convertir un tableau

|__+_| |__+_|

18) Pourquoi utilisons-nous la méthode peek() en Java 8 ?

La toute nouvelle méthode peek() de Java 8 aide à donner la valeur du nouveau flux, qui contient une copie de tous les éléments de l'ancien flux. Cela se produit une fois que l'action du consommateur est exécutée. Cela fait partie des opérations du flux intermédiaire. Il doit être utilisé à l'aide du terminal.
Syntaxe : Streampeek (action du consommateur)

19) Pouvez-vous donner des exemples d'opérations intermédiaires en Java 8 ?

Voici les exemples d'opérations intermédiaires dans Java 8

  1. sauter()
  2. filtre()
  3. limite()
  4. carte()
  5. coup d'oeil()
  6. flatmap()
  7. distinct()
  8. trié()

20) Quels sont certains des exemples d'opérations de terminal dans Java 8 ?

Voici quelques exemples d'opérations de terminal dans Java 8

  1. réduire()
  2. toutMatch()
  3. maximum()
  4. n'importe quelle correspondance ()
  5. min ()
  6. aucuneCorrespondance()
  7. pour chaque()
  8. aucuneCorrespondance()
  9. compter()
  10. collecter()

21) Écrire un programme qui répertorie le nombre d'employés et compte le nombre d'employés âgés de moins de 30 ans ?

|__+_|

22) Expliquez les différences entre l'API Collection et l'API Stream ?

La réponse ci-dessous dessine les différences entre l'API de collection et l'API de flux utilisée en Java.

API de collecte API de flux
Stockage des donnéesTraitement des données
Le package java.util est utiliséJava.util.stream est utilisé dans l'API de flux
Le calcul se fait au débutL'opération de chargement différé est utilisée dans l'API de flux
L'ajout et la suppression d'objets peuvent être effectuésLes flux ne peuvent pas être modifiés
Des itérations peuvent se produireLes itérations sont internes aux fonctions dans les opérations de flux.

23) Lister l'interface fonctionnelle en Java 8 ?

Voici la liste de l'interface fonctionnelle de Java 8 : -

  1. Expression lambda
  2. Fonctions intégrées
  3. Une fonction
  4. Prédicat
  5. Opérateur unaire
  6. Opérateur binaire
  7. Fournisseur
  8. Consommateur

24) Quel est le moyen le plus simple de rechercher et de supprimer des éléments en double d'une liste à l'aide de Java 8 ?

Cette réponse sera couverte à l'aide d'un exemple de code. Le code suivant aidera à supprimer les éléments en double dans le tableau.

|__+_|

25) Comment un encodeur Base64 qui encode les URL est-il créé en Java 8 ?

Les fonctionnalités et opérations liées à base64 sont désormais disponibles dans Java 8, et il existe une classe nommée - java.util.base64 qui aide à activer les fonctionnalités. L'encodeur de Java 8 encode et décode la valeur pour une utilisation ultérieure. On peut créer une fonction - getEncoder() pour activer le processus. L'encodage d'URL ajoute une couche de sécurité très nécessaire. ,

26) Énumérez les principaux avantages de l'utilisation de Java 8 ?

  1. Code plus compact
  2. Moins de code passe-partout
  3. Code plus lisible et réutilisable
  4. Code plus testable
  5. Opérations parallèles

27) Comment pouvons-nous obtenir la date et l'heure actuelles à l'aide de l'API Java 8 Date and Time ?

On peut utiliser à présent méthode de LocalDate pour obtenir la date du jour.

Exemple:

|__+_|

28) Pouvez-vous faire la différence entre prédicat et fonction ?

Prédicat Une fonction
Il est utilisé pour la transformation et pour les valeurs de retourIl est utilisé pour implémenter des vérifications conditionnelles.
Il a une méthode abstraite test().Il a une méthode abstraite apply().
Il renvoie des valeurs booléennes.Il peut renvoyer n'importe quel type de valeur.
Il prendra un paramètre de type, qui définit le type d'entrée ou le type d'argument.Il faudra 2 types de paramètres. Le premier définit le type d'argument du type d'entrée et le second représente le type de retour.

29) Avons-nous PermGen dans Java 8 ?

Jusqu'à Java 7, JVM utilisait une zone connue sous le nom de PermGen pour stocker les classes. Il a été supprimé dans Java 8 et remplacé par MetaSpace.

Voir également Top 100 des questions et réponses d'entrevue Ansible

Le métaspace de Java 8 est un nouvel espace mémoire à partir de la version Java 8 ; il a remplacé l'ancien espace mémoire PermGen. La différence est la façon dont il gère l'allocation de mémoire. Plus précisément, cette région de mémoire native grandira automatiquement par défaut.

30) Pouvez-vous différencier Map et flatMap Stream Operation ?

La réponse suivante couvre les différences entre les opérations map() et flatMap.

carte() flatMap()
En termes simples - flux de valeursFlatmap Flux de flux de valeurs
Cartographie 1 à 1Cartographie 1 à plusieurs
Si l'on souhaite utiliser une valeur unique, cette fonction convientLorsque l'on doit utiliser plusieurs valeurs, cette fonction est appropriée
Il crée une cartographieIl crée une cartographie et un aplatissement

31) Écrire un programme pour trouver l'âge maximum de l'employé ?

|__+_|

32) Une interface fonctionnelle étendra-t-elle/héritera-t-elle d'une autre interface ?

Une interface fonctionnelle ne peut pas étendre l'autre interface avec une méthode abstraite car elle violerait la règle, c'est-à-dire une méthode abstraite par interface fonctionnelle.

33) Différencier les opérations intermédiaires et terminales dans Stream ?

Opérations intermédiaires Opérations terminales
Ils sont de nature paresseuse et ne sont pas exécutés immédiatement.Ils ne sont pas paresseux et sont exécutés dès qu'ils sont rencontrés.

34) Faire la différence entre findFirst() et findAny() de Stream ?

trouverPremier() trouverAny ()
Il renverra toujours le premier élément du fluxIl est permis de choisir n'importe quel élément du flux.
Il a un comportement déterministe.Son comportement est non déterministe.

35) Définir l'interface de la fonction consommateur ?

La fonction consommateur en Java est définie comme une interface fonctionnelle à argument unique qui ne renvoie aucune valeur.

36) Qu'est-ce que l'interface de la fonction fournisseur ?

L'interface fournisseur est définie comme faisant partie du package java. util.function qui a été introduit dans Java 8 afin d'implémenter la programmation fonctionnelle en Java. Il définit une fonction qui ne prend aucun argument mais produit une valeur de type.

37) Définir l'interface de fonction de prédicat ?

La fonction de prédicat dans Java 8 est définie comme une interface fonctionnelle qui accepte l'argument et renverra un booléen. En règle générale, il est utilisé pour appliquer dans un filtre pour la collection d'objets.

38) Définir des méthodes statiques dans les interfaces ?

Les méthodes statiques consistent en une implémentation de méthode qui appartient à l'interface et est appelée à l'aide du nom de l'interface, elle est utilisée pour définir les méthodes utilitaires et ces méthodes ne peuvent pas être remplacées.

39) Listez les différentes catégories d'interfaces de fonctions prédéfinies ?

Prédicat: Ils effectuent un test et renverront une valeur booléenne.

Opérateur: Ils effectuent une opération de type réduction qui acceptera les mêmes types d'entrée.

Une fonction: Ils sont utilisés pour transformer des arguments en valeur retournable.

Consommateur: Ils acceptent des arguments mais ne renvoient aucune valeur.

Fournisseur: Ils n'acceptent aucun argument mais renvoient une valeur.

40) Énumérez quelques interfaces fonctionnelles standard prédéfinies par Java ?

Exécutable : Ils sont utilisés pour exécuter les instances d'une classe sur l'autre thread sans arguments ni valeurs de retour.

Comparable: Ils sont utilisés pour trier les objets dans l'ordre de tri naturel

Appelable : Ils exécutent principalement les instances d'une classe sur un autre thread sans argument spécifié, et il renverra une valeur ou lèvera une exception.

Comparateur : Il est utilisé pour trier différents objets dans un ordre défini par l'utilisateur.

41) Définir les flux Java 8 ?

Les flux sont introduits dans Java 8 et l'API Stream est principalement utilisée pour traiter la collection d'objets. Un flux est défini comme une séquence d'objets qui prendront en charge différentes méthodes qui sont mises en pipeline pour produire le résultat souhaité. Les flux ne modifient pas une structure de données d'origine ; ils fournissent le résultat selon les méthodes en pipeline.

42) Énumérer les principaux composants d'un flux ?

Les composants du flux sont répertoriés ci-dessous :

  1. Une source de données
  2. Ensemble d'opérations intermédiaires pour traiter la source de données.
  3. Opération de terminal unique qui produit des résultats.

43) Pouvez-vous énumérer les opérations intermédiaires les plus couramment utilisées ?

carte (Fonction) – Il renverra un nouveau Stream en transformant chaque élément en appliquant la fonction mapper fournie.= trié() – Il trie les éléments d'entrée et les passe à l'étape suivante.

sauter (début long) - Il sautera les éléments initiaux jusqu'au début.

flatMap - Il transformera chaque élément en flux de ses éléments constitutifs, puis aplatira tous les flux en un seul flux.

limite (taille maximale longue) – Il limite la taille du flux à maxsize.

Filtre (Prédicat) – Il permettra un traitement sélectif des éléments Stream. Il renverra les éléments qui satisfont la condition fournie par un prédicat.

44) Nommez les sources d'objets de données qu'un flux peut traiter ?

  1. Une source réactive, par exemple, des commentaires dans Média social ou tweets/re-tweets
  2. Une collection d'un Array.
  3. Une fonction de générateur de flux
  4. Le canal d'E/S ou un périphérique d'entrée

45) Que sont les opérations intermédiaires ?

  1. Transforme généralement un flux en un autre flux.
  2. Ils sont paresseux, c'est-à-dire qu'ils ne sont pas exécutés tant qu'une opération de terminal n'est pas invoquée.
  3. Traitez les éléments de flux.
  4. Fait une itération interne de tous les éléments source
  5. Les opérations sont appliquées selon l'ordre défini.
  6. Les opérations intermédiaires sont principalement les fonctions lambda.
  7. Nous pouvons enchaîner n'importe quel nombre d'opérations dans un pipeline de traitement.

46) Que sont les opérations du terminal ?

  1. Démarre le pipeline Stream
  2. utilisé pour collecter les données de flux traitées

47) Pouvez-vous énumérer le type d'opérations de terminal le plus courant ?

réduire() – Il produira un résultat unique à partir de tous les éléments de la séquence de flux

  • count () - Il est utilisé pour renvoyer le nombre d'éléments sur le flux.
  • min() - Il renverra l'élément min du flux.
  • max () - Il renverra l'élément max du flux.

collecter() – Il collectera un seul résultat de tous les éléments de la séquence de flux.

Opérations itératives

  • forEach() - Il accepte un consommateur.
  • forEachOrdered() – Il est utile de maintenir l'ordre dans les flux parallèles.

Opérations de recherche/interrogation

  • Tt prend Predicate comme entrée pour la condition de correspondance.
  • Le traitement du flux sera arrêté au fur et à mesure et le résultat pourra être déterminé.

48) Lister les packages importants pour la nouvelle API Data and Time ?

  1. java.time
    1. Rendez-vous
    2. fois
    3. Instants
    4. durées
    5. fuseaux horaires
    6. périodes
  2. Java.time.format
  3. Java.temps.temporel
  4. java.time.zone

49) Énumérez la fonctionnalité de la nouvelle API de date et d'heure dans Java 8 ?

  1. Méthodes fluides pour la création d'objets et l'arithmétique
  2. Classes immuables et Thread-safe
  3. Prise en charge du fuseau horaire
  4. Résout le problème I18N pour les API antérieures
  5. Tous les packages sont basés sur le système de calendrier ISO-8601
  6. Influencé par le package joda-time populaire

50) Différencier Collections et Stream ?

Collections Flux
Il est principalement utilisé pour stocker et manipuler un groupe de données.L'API Stream est utilisée pour traiter un groupe de données.
Tous les éléments des collections sont calculés au début.Dans les flux, les opérations intermédiaires sont paresseuses.
Toutes les classes et interfaces de cette API sont dans le package Java.utilToutes les classes et interfaces de cette API sont dans le package java.util.stream
Les collections effectuent une itération sur la collection.Stream effectue une itération en interne.
Dans les collections, on peut supprimer ou ajouter des éléments.Ici, nous ne pouvons pas modifier les flux.

Bonne chance avec votre entretien Java 8, espérons que nos questions et réponses d'entretien Java 8 vous ont été utiles. Vous pouvez également consulter notre Questions et réponses de l'entretien .NET , qui pourraient vous être utiles.