Parmi les phases les plus importantes lors d’un recrutement d’un candidat pour un poste profil technique, est celle de l’entretien technique dont l’objectif est l’évaluation technique du candidat et la validation de son profil vis-à-vis les exigences du poste demandé.

Je note ici que l’entretien technique, tel qu’il est “conçu”, ne permet pas de trouver les candidats doués, mais il permet dans la plus part des cas de sélectionner les mieux préparés pour un tel challenge de point de vue technique.

En ce qui suit, 20 questions java que tout candidat débutant/confirmé pourrait les rencontrer.

  1. Qu’est ce qu’une class Java?
    Dans sa forme la plus basique, c’est une template définissant un type de donnée. Elle est utilisée pour créer un objet.
  2. Et qu’est-ce qu’un objet?
    C’est un élément d’une classe (insta
  3. Et qu’es-ce qu’une méthode?
    C’est l’action (le comportement) qu’un objet peut faire.
  4. Est-ce qu’il y a une différence entre JDK, JVM et JRE?
    Oui, chose qu’on peut tirer facilement de leurs définitions:
    • JDK : Java Devlopment Kit. C’est l’implémentation des spécifications de l’une des plateformes JAVA. C’est l’ensemble des packages et programme qu’on utilise pour écrire nos propres programmes.
    • JVE : Java Virtuel Machine. C’est l’environnement dans lequel les codes compilés des applications Java (Byte Code) s’exécutent.
    • JRE : Java Runtime Environment . C’est la couche logicielle fournissant les packages et les ressources nécessaires pour qu’un programme java puisse tourner.
  5. Est-ce que Java utilise les pointeurs?
    Non. Selon la philosophie Java, Java importe une couche de sécurité en utilisant les références à la place des pointeurs. Donc pas de pointeurs.
  6. Quels sont les modificateurs d’accès en java?
    Ce sont les mots clés utilisés pour spécifier l’accès et la porté des objets, attributs et méthodes en Java. Ils sont 3, en effet 4, le 4ème c’est “nothing:
    • public : les classes, attributs, les méthodes peuvent être utilisés par n’importe quel objet.
    • protected : Seules les classes du même packages ou des sous-classes qui peuvent utiliser les objets, attributs, méthodes avec ce modificateur.
    • private: c’est le modificateur le plus restreint, les objets, attributs, méthodes, variables ne peuvent être utilisées que dans la classes ou ils sont déclarés.
    • nothing” : pas de modificateur ou le modificateur par défaut, la visibilité est restreinte dans le même package.
  7. Et pour static, final et transient? Voir tableau ci-dessous
  8. Quelle est la différence entre inner class et subclass?
    • inner class : ou classe interne, est une classe définie (déclarée) à l’intérieur d’une classe. Elle est indépendante et peut avoir ses propres méthodes et attributs
    • subclass : sous classe, est une classe fille d’une classe mère, et donc elle peut réutiliser voire réécrire les méthodes de sa classe mère.
  9. Quelles sont les étapes pour établir une connexion à une base de données?
    1. Enregistrer le driver
    2. Créer la connexion
    3. Créer le statement
    4. Exécuter la requête
    5. Récupérer les résultats ou l’état de l’exécution
    6. Fermer la connexion
  10. Qu’est-ce qu’un constructeur? quels sont ses type?
    Un constructeur est un bloc de code utilisé pour initialiser un objet. On distingue deux types de constructeur : constructeur par défaut, et constructeur paramètré (avec des paramètres utilisés souvent pour initialiser les champs de l’objet créé)
  11. Quelle est la différence entre Overloading et Overriding?
    • Overloading : décrit le fait que deux méthodes (ou plus) peuvent avoir le même nom mais pas les mêmes attributs.
    • Overriding : décrit le fait que deux méthodes (ou plus) peuvent avoir le même nom et les mêmes attributs avec une relation mère-fille entre elles.
  12. Quelle est la différence entre equals() et ==?
    • equals() : utilisée pour comparer deux objets de point de vue logique métier
    • == : utilisée pour comparer les primitifs ou les objets de point de vue valeur.
  13. Qu’est ce qu’un thread?
    Thread est une classe permettant d’exécuter un programme. En Java, chaque programme a au moins un thread en cours d’exécution (main). Cette classe permet de faire tourner plusieurs programme exécutant la même classe en même temps dans ce qu’on appelle programmation multi-thread.
  14. C’est quoi le Garbage Collector?
    C’est un mécanisme défini dans la JVM pour faire le ménage. Si un objet n’est plus sollicité par un autre objet, il sera automatiquement détruit pour libérer les ressources.
  15. Est-ce que les tableaux sont des primitifs en Java?
    Non, ce sont des objets.
  16. Qu’est-ce qu’une exception?
    C’est un problème qui se produit lors de l’exécution d’un programme, et qui nécessite un traitement spéciale (exceptionnel) pour le bon fonctionnement de l’application. Ceci peut être réalisé, soit par l’envoi de l’exception à un niveau supérieur (throws) ou par la capture et le traitement au niveau local (try/catch)
  17. C’est quoi une classe abstraite? abstract class
    Une abstract class est une classe qui permet de définir une classe sans que cette dernière soit instanciable. Pour l’exploiter il faut absolument passer par l’héritage. C’est une technique qui renforce la programmation orientée-objet POO.
  18. C’est quoi une interface?
    C’est une classe abstraite, qui permet de regrouper un certain nombre de définition des méthodes sans qu’elle soit instanciée. Pour l’exploiter il faut l’implémenter
  19. Qu’est ce qu’une servlet?
    C’est une classe java qui s’exécute dans contexte au niveau du serveur. Elle permet de recevoir les requêtes client et y répondre en utilisant le protocole HTTP. pour la créer il suffit d’étendre GenericServlet ou HttpServlet ou bien d’implémenter l’interface Servlet.
  20. Qu’est ce qu’une JSP?
    Java Server Page. C’est une technique basée sur Java permettant aux développeur de créer dynamiquement du code HTML ou XML ou autre format supporté par les navigateurs. Elle permet aussi de créer ce qu’on appelle les taglib comme étant l’extension du l’HTML et l’XML.
Appliqué à Staticfinaltransient
ClasseNAil sera impossible de l’hériterNA
Méthodepossible de l’utiliser sans instancier la classeil sera impossible de la modifier dans une sous classeNA
Variablepossible de l’utiliser sans instancier la classeil sera impossible de la modifier que lors de son initialisation.Pour empêcher la sérialisation s’il s’agit d’une variable sensible ou inutile
inner classpour déclarer une classe à l’intérieur d’une autre classeNANA
Code blockCe bloc sera exécuté une seule lors du chargement de la classeNANA
Récapitulatif static, final, transient.

Il est fortement probable qu’on demande du candidat d’écrire des bouts de code ou donner des mots clés pour donner des exemples illustrant ses réponses.

Bonne chance tout le monde.

_____________________________________________________________
Références :
https://www.ibm.com/cloud/learn/jre
https://docs.oracle.com/javase/7/docs/api/
https://docs.oracle.com/javaee/7/index.html
https://www.tutorialspoint.com/java/
Photo by Maranda Vandergriff on Unsplash

Salut, Je suis Jalal MJADLI

Fondateur et Manager chez DISTINKTEC. IT entrepreneur marocain passionné par les nouvelles technologies avec plus de 15 ans d'expérience dans l'industrie des logiciels et l'optimisation des processus métiers des organisations. Je crois profondément que la communication et le partage du savoir-faire sont les moyens les plus efficaces pour s'épanouir.