Top 120 Questions d’Entretien sur Java – Partie 3

Questions d’Entretien sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses sur Java comprennent divers sujets. Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son entretien sur Java .
 
 

1. Parlez-nous du compilateur JIT.
JIT est l’abréviation de Just-In-Time et est utilisé pour améliorer les performances pendant l’exécution. Il compile en même temps des parties du byte code ayant une fonctionnalité similaire, ce qui réduit le temps de compilation du code pour son exécution.

Le compilateur n’est rien d’autre qu’un traducteur du code source en code exécutable par la machine. Mais quelle est la particularité du compilateur JIT ? Regardons comment il fonctionne :

  • Tout d’abord, la conversion du code source Java (.java) en byte code (.class) se fait à l’aide du compilateur javac.
  • Ensuite, les fichiers .class sont chargés au moment de l’exécution par la JVM et, à l’aide d’un interpréteur, ils sont convertis en code compréhensible par la machine.
  • Le compilateur JIT fait partie de la JVM. Lorsque le compilateur JIT est activé, la JVM analyse les appels de méthode dans les fichiers .class et les compile pour obtenir un code natif plus efficace. Il s’assure également que les appels de méthode prioritaires sont optimisés.
  • Une fois l’étape ci-dessus effectuée, la JVM exécute directement le code optimisé au lieu de réinterpréter le code. Cela augmente les performances et la vitesse d’exécution.

 
 

2. Quelle est la différence entre la méthode equals() et l’opérateur d’égalité (==) en Java ?
equals()
Opérateur d’égalité (==)
Il s’agit d’une méthode définie dans la classe Object. C’est un opérateur binaire en Java.
Cette méthode est utilisée pour vérifier l’égalité de contenu entre deux objets selon la logique métier spécifiée. Cet opérateur est utilisé pour comparer des adresses (ou des références), c’est-à-dire pour vérifier si les deux objets pointent vers le même emplacement mémoire.
Différence entre equals() et ==
 
 

3. Expliquez brièvement le concept de surcharge des constructeurs.
La surcharge des constructeurs est le processus de création de plusieurs constructeurs dans une classe portant le même nom avec une différence dans les paramètres du constructeur. En fonction du nombre de paramètres et de leurs types correspondants, le compilateur distingue les différents types de constructeurs. Exemple:

class Point 
{
	int x, y;
	
	public Point(int x, int y) 
	{
	   this.x = x;
	   this.y = y;
	}
	
	public Point(Point p) 
	{
	   this.x = p.x;
	   this.y = p.y;
	}
}

Deux constructeurs sont définis ici mais ils diffèrent sur la base du type de paramètre et de leur nombre.

 
 

4. Comment définir le constructeur de copie en Java ?
Constructeur de copie en Java est le constructeur utilisé lorsque nous voulons initialiser la valeur du nouvel objet à partir de l’ancien objet de la même classe. Exemple:

class Point 
{
	int x, y;
	
	public Point(Point p) 
	{
	   this.x = p.x;
	   this.y = p.y;
	}
}
Constructeur de copie en Java
 
 

5. Quelle est la différence entre surcharge et redéfinition des méthodes?
En Java, la « surcharge des méthodes » est rendue possible par l’introduction de différentes méthodes dans une même classe portant le même nom. Cependant, toutes les fonctions diffèrent par le nombre ou le type de paramètres. Elle a lieu à l’intérieur d’une classe et améliore la lisibilité du programme. Exemple:

class Calcul 
{
   public int add (int a, int b) 
   {
           return a + b;
   }
   
   public int add (int a, int b, int c) 
   {
           return a + b + c;
   }
}

La « redéfinition de méthode » est le concept dans lequel deux méthodes ayant la même signature sont présentes dans deux classes différentes dans lesquelles une relation d’héritage est présente. L’implémentation d’une méthode particulière (déjà présente dans la classe de base) est possible pour la classe dérivée en utilisant la redéfinition de méthode. Exemple:

class Calcul 
{
   public int add (int a, int b) 
   {
		return a + b;
   }
}

class Addition extends Calcul 
{
   public int add (int a, int b) 
   {
		int res = a + b;
		return res;
   }
}
Différence entre Surcharge et Redéfinition
 
 

6. À quoi sert le ClassLoader en Java?
Le Classloader de Java est le programme qui appartient à JRE (Java Runtime Environment). La tâche du ClassLoader est de charger les classes et interfaces requises dans la JVM lorsque cela est nécessaire.

Exemple: Pour lire les entrées clavier, nous avons besoin de la classe Scanner. Et la classe Scanner est chargée par le ClassLoader.

 
 

7. Que se passe-t-il s’il y a plusieurs méthodes main() dans une classe en Java ?
Le programme ne peut pas se compiler car le compilateur indique que la méthode a déjà été définie dans la classe.
 
 

8. Qu’entendez-vous par clonage d’objet et comment le réaliser en Java ?
Il s’agit du processus de création d’une copie exacte d’un objet. Pour cela, une classe java doit implémenter l’interface Cloneable du package java.lang et surcharger la méthode clone() fournie par la classe Object dont la syntaxe est la suivante :

protected Object clone() throws CloneNotSupportedException{
 return (Object)super.clone();
}
 
 

9. Les mots-clés final, finally et finalize ont-ils la même fonction ?
Ces trois mots-clés ont leur propre utilité lors de la programmation.

Final : Si une restriction est requise pour les classes, les variables ou les méthodes, le mot-clé final est utile. L’héritage d’une classe finale et la surcharge d’une méthode finale sont limités par l’utilisation du mot-clé final. La valeur du variable devient constante après l’ajout du mot-clé final. Exemple :

final int age = 25;
age = 30;  // erreur

Finally : C’est le bloc où tous les codes écrits à l’intérieur sont exécutés sans tenir compte du traitement des exceptions. Exemple :

try {
	int age = 30;
}
catch (Exception exception) {
	System.out.println("Une exception s'est produite");
}
finally {
	System.out.println("Exécution du bloc finally");
}

Finalize : Avant le ‘garbage collection’ d’un objet, la méthode finalize est appelée afin que l’activité de nettoyage soit mise en œuvre. Exemple :

public static void main(String[] args) 
{
	String str = new String("Welcome to WayToLearnX!");
	str = null;
	System.gc(); // Garbage collector appelé
}
public void finalize() {
	// Finalize appelé
}
 
 

10. Est-il possible que le bloc « finally » ne soit pas exécuté ? Si oui, indiquez le cas.
Oui, il est possible que le bloc « finally » ne soit pas exécuté. Les cas sont les suivants:

  • Supposons que nous utilisons System.exit() dans la déclaration ci-dessus.
  • S’il y a des erreurs fatales comme un dépassement de pile, une erreur d’accès à la mémoire, etc.
 

Une réflexion sur “Top 120 Questions d’Entretien sur Java – Partie 3

  • janvier 10, 2023 à 1:38 pm
    Permalien

    priere de verifier les reponses de la question 7

    la methode main peut etre surcharger juste que le compilateur lira une seule , celle avec (String Args)

    je peux me tromper .
    merci de verifier cela .

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *