Bien préparer son entretien technique Java

Par l'équipe éditoriale d'Indeed

Publié le 6 décembre 2021

L'équipe éditoriale d'Indeed est diversifiée et talentueuse. Elle est composée de rédacteurs, de chercheurs et de spécialistes qui ont accès aux données et aux informations d'Indeed pour fournir des conseils utiles afin de guider votre parcours professionnel.

Suite à l'envoi de votre candidature, vous avez obtenu un rendez-vous avec le recruteur ? Vous vous demandez comment bien préparer votre entretien technique Java ? Dans ce texte, nous vous dévoilons les différents types de questions que vous pouvez rencontrer. Vous découvrirez également 20 exemples de questions sur Java, ainsi que la réponse correspondante.

Entretien technique Java : quels types de questions pouvez-vous rencontrer ?

Le recruteur peut être amené à vous poser différents types de questions au cours de votre entretien d'embauche. Vous allez ainsi certainement devoir répondre à des questions :

  • visant à tester vos connaissances sur Java ;

  • relatives à votre expérience professionnelle en lien avec cette technologie, c'est-à-dire comment vous l'avez utilisée dans certaines situations spécifiques ;

  • d'ordre plus général. Il s'agit des questions classiques des entretiens d'embauche, comme celles concernant vos qualités et défauts ou vos prétentions salariales.

Pour mettre toutes les chances de votre côté, il est important de bien vous préparer à tous ces types de questions. Pour vous y aider, nous vous proposons de découvrir ci-dessous 20 questions relatives à la technologie Java.

20 questions sur Java que le recruteur peut vous poser

Voici quelques exemples de questions auxquelles vous pourriez avoir à répondre au cours de votre entretien, ainsi que leur réponse.

1. Comment la méthode Substring fonctionne-t-elle ?

Cette méthode permet d'extraire une chaîne de caractères contenue dans une autre. Si un seul paramètre lui est fourni, elle retournera les caractères contenus de l'index passé en paramètre à la fin de la chaîne. Si deux lui sont fournis, elle retournera la chaîne contenue entre ces deux index.

2. Quels problèmes peuvent apparaître lorsque l'on utilise un HashMap dans un environnement multi-thread ?

Cela risque de créer une boucle infinie, due à un accès concurrentiel à une ressource. Il est conseillé d'utiliser dans ce cas un ConcurrentHashMap.

3. Qu'est-ce qu'une expression lambda ?

Les expressions lambda permettent de passer une fonction, généralement simple, en paramètre d'une autre fonction. Elles visent à simplifier la syntaxe et à faciliter la lecture du code.

4. Quelle est la différence entre un objet et une classe ?

Une classe est définie par ses attributs et ses méthodes. Elle est la description de ce qui permet de créer un objet. Un objet est, quant à lui, une instance d'une classe.

5. Qu'est-ce-que JVM, JDK et JRE ?

JVM est le sigle de Java Virtual Machine, qui permet d'exécuter les programmes. JRE, ou Java Runtime Environment permet de créer la machine virtuelle (JVM). Enfin, JDK (Java Developper Kit) contient l'ensemble des outils nécessaires au développeur pour créer une application.
On utilise le JDK pour créer l'application, la JVM pour corriger les bugs et améliorer cette dernière. Le JRE fonctionne en arrière-plan. Il permet toutefois aussi d'observer le comportement de l'application.

6. Qu'est-ce qu'un constructeur ?

Un constructeur est une méthode utilisée afin d'instancier une classe, c'est-à-dire de créer un objet basé sur la classe du constructeur. Celui-ci peut servir à initialiser les valeurs initiales de ses attributs.

7. La technologie Java utilise-t-elle les pointeurs ?

Les pointeurs sont utilisés par Java. En revanche, ils ne sont pas manipulables explicitement. Lorsqu'un objet est créé, il s'agit en fait d'un pointeur (aussi appelé référence) sur ce même objet.

8. Quelle est la différence entre une sous-classe et une classe interne ?

Une classe interne est une classe définie au sein d'une autre. Elle n'est pas utilisable sans celle qui l'héberge.
Une sous-classe est une classe qui hérite d'une autre, aussi appelée super-classe. La sous-classe implémente les méthodes de la super-classe, telles que définies dans cette dernière.

9. Qu'est-ce que le Garbage Collector ?

Il s'agit du processus qui permet aux applications Java de gérer la mémoire. Le Garbage Collector est chargé d'éliminer les objets inutilisés afin de libérer cette dernière. Ce processus est géré automatiquement au sein de la JVM, le programmeur n'ayant normalement pas à lui fournir d'instructions.

10. Pouvez-vous expliquer la différence entre les spécificateurs d'accès public et privé à une méthode de classe ?

Lorsque le spécificateur d'une méthode est marqué comme privé, cela signifie que celle-ci ne pourra être appelée qu'au sein de sa classe.
Si le spécificateur d'accès est marqué comme public, la méthode pourra être appelée de l'extérieur, à condition que la classe elle-même soit marquée comme publique.
Il existe également des spécificateurs protégés, ainsi que des emballages par défaut.

11. Qu'est-ce qu'une exception ?

Il s'agit d'une anomalie survenue durant l'exécution d'un programme. Grâce à son mécanisme de gestion des erreurs, Java permet de la traiter avec trois mots clés, représentant trois étapes :

  1. Try : ce bloc de code représente les instructions susceptibles de provoquer une exception.

  2. Catch : si une erreur s'est produite dans le bloc try, celui-ci est abandonné et l'exception est capturée par le bloc catch qui devrait apporter un traitement adapté.

  3. Finally : il est appelé à la fin du bloc try si celui-ci s'est déroulé sans accroc ou une fois le bloc catch exécuté, si une exception a été levée.

Il est également possible de ne pas traiter une exception au sein de la méthode dans laquelle elle est apparue à l'aide du mot clé Throw. Ce dernier permet de renvoyer l'exception à la méthode parente.

12. Qu'est-ce que l'autoboxing ?

Le compilateur Java convertit automatiquement les types primitifs en leur enveloppe objet. Il convertira automatiquement, par exemple, un int en Integer ou encore un float en Float. L'opération inverse est, quant à elle, appelée unboxing.

13. Qu'est-ce que la sérialisation ?

La sérialisation permet d'encoder un objet en mémoire, afin qu'il soit stocké ou envoyé et reconstitué à l'identique par la suite. Différentes méthodes de sérialisation sont possibles. Les plus fréquentes sont la conversion en JSON et celle en XML, deux types de fichiers couramment utilisés et pris en charge par de nombreux langages. L'opération consistant à convertir un objet sérialisé en objet programmatique est appelée désérialisation.

14. Quelle est la différence entre la pile et le tas ?

La mémoire en pile (ou stack) sert à l'allocation de mémoire statique. Elle permet de stocker les appels de fonctions et les variables primitives. Lorsque la pile dépasse sa mémoire allouée, l'exception java.lang.StackOverFlowError est levée.
La mémoire de tas (ou heap) permet de stocker les objets. On parle alors de mémoire dynamique. Lorsqu'un objet est stocké en mémoire, il se trouve dans le tas et sa référence se trouve dans la pile. Lorsque la mémoire allouée au tas est saturée, l'exception java.lang.OutOfMemoryError est levée.
L'accès à la pile est plus rapide que celui au tas, qui nécessite l'utilisation du Garbage Collector afin de libérer de la mémoire.

15. Qu'est-ce que l'héritage ?

En Java, une classe peut en étendre une autre à l'aide du mot clé Extends, c'est-à-dire qu'elle donne ses méthodes et ses attributs à une classe fille. Cette dernière hérite de la définition de la mère. Elle peut implémenter de nouveaux attributs et méthodes qui ne seront pas partagés avec la classe mère, l'héritage étant à sens unique. Il est également possible de redéfinir des méthodes héritées afin d'obtenir un comportement différent. L'héritage multiple n'est pas possible en Java : une classe fille ne peut avoir qu'une seule classe mère.

16. En Java, pourquoi les String sont-elles dites immuables ?

Lorsqu'une valeur a été attribuée à une String, elle ne peut plus être modifiée. Elle est alors référencée en mémoire. Lorsqu'on cherche à modifier cette valeur, un nouvel objet est créé en mémoire. La référence de la String pointe alors vers ce nouvel objet, l'ancien étant supprimé par le Garbage Collector.

17. Quelle est la différence entre substitution de méthode et surcharge de méthode ?

La surcharge d'une méthode implique d'avoir plusieurs définitions d'une méthode utilisant le même nom, mais des arguments différents au sein d'une classe.
Une méthode de substitution redéfinit la méthode d'une classe héritée en utilisant le même nom, le même type de retour et les mêmes arguments, mais avec un traitement différent.

18. Quelle est la différence entre wait() et sleep() ?

La méthode sleep() permet de bloquer le processus pendant un temps donné. Pendant son utilisation, le processus est verrouillé.
La méthode wait(), quant-à-elle, met un processus en attente. Ainsi, il pourra reprendre son exécution lorsque les méthodes notify() ou notifyAll() seront appelées.
Sleep est utilisé afin de faire une pause dans l'exécution d'une méthode tandis que wait() est plutôt employé pour faire de la communication inter-thread.

19. Pouvez-vous expliquer la différence entre une classe abstraite et une interface ?

Une interface permet de définir les méthodes d'une classe, mais pas leur implémentation. Une classe abstraite peut, quant à elle, implémenter du code. Une classe peut implémenter plusieurs interfaces, alors qu'elle ne peut en hériter que d'une seule.

20. À quoi sert la méthode invokeLater() ?

Elle permet de contrôler que les composants Swing sont bien mis à jour par le dispatchEventThread.

Vous avez désormais un aperçu des questions que le recruteur peut vous poser au cours d'un entretien technique Java. Gardez en tête qu'il s'agit d'exemples et qu'il peut vous interroger sur d'autres choses. La partie technique est évidemment cruciale. Mais d'autres éléments entrent en ligne de compte. Pour optimiser vos chances de décrocher le poste que vous visez, vous pouvez consulter nos conseils pour réussir son entretien d'embauche. Bonne chance pour votre rendez-vous !

Découvrir d'autres articles