Top 120 Questions d’Entretien sur Java – Partie 5

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. Lequel String ou StringBuffer doit être préféré quand il y a beaucoup de mises à jour à faire dans la chaîne de caractères?
StringBuffer est mutable et dynamique par nature alors que String est immuable. Chaque mise à jour / modification de String crée une nouvelle String, ce qui surcharge le pool de String avec des objets inutiles. Par conséquent, dans les cas de nombreuses mises à jour, il est toujours préférable d’utiliser StringBuffer car cela réduira la surcharge de la création de multiples objets String dans le pool de String.
 
 

2. Comment empêcher la sérialisation des attributs d’une classe en Java ?
Pour ce faire, l’attribut peut être déclaré avec l’utilisation du mot clé « transient » comme indiqué ci-dessous:

public class Exemple 
{ 
   private transient String name; 
   private String address;
   private int id;
   // ...
}

Dans l’exemple ci-dessus, tous les champs sauf « name » peuvent être sérialisés.

 
 

3. Que se passe-t-il si le mot-clé « static » n’est pas inclus dans la signature de la méthode main() en Java ?
Il n’y aurait pas d’erreur de compilation. Mais lorsque le programme est exécuté, puisque la JVM ne peut pas faire correspondre la signature de la méthode main, le code génère une erreur « NoSuchMethodError » au moment de l’exécution.
Introduction java
 
 

4. Considérez le programme suivant, déterminez la sortie, et indiquez également la raison de cette situation.
public class Main
{
	public static void main(String[] args) {
		System.out.println("Main 1");
	}
	public static void main(int[] args) {
		System.out.println("Main 2");
	}
}
La sortie du programme ci-dessus sera « Main 1 ». Ceci est dû au fait que la JVM appellera toujours la méthode main() sur la base de la définition qu’elle a déjà. Peu importe le nombre de méthodes main() que nous surchargeons, la JVM n’exécutera qu’une seule méthode principale main() en fonction de sa déclaration dans la JVM.
 
 

5. Pouvons-nous faire du thread main() un thread démon?
En java multithreading, les threads main() sont toujours des threads non-daemon. Et il n’y a aucun moyen de changer la nature du thread non-daemon en thread daemon.
Multithreading en Java
 
 

6. Comment une exception se propage-t-elle dans le code ?
Lorsqu’une exception se produit, il cherche d’abord à localiser le bloc catch correspondant. Si le bloc catch correspondant est localisé, il est exécuté. Dans le cas contraire, l’exception se propage dans la pile d’appel de la méthode et se rend dans la méthode appelante où le processus de recherche du bloc d’interception correspondant est effectué. Cette propagation se produit jusqu’à ce que le bloc catch correspondant soit trouvé. Si la correspondance n’est pas trouvée, le programme se termine dans la méthode principale.
 

Exceptions en Java
 
 

7. Comment les exceptions affectent-elles le programme s’il ne les gère pas ?
Les exceptions sont des erreurs d’exécution. Supposons que nous créons une application androïde avec Java. Tout fonctionne bien, mais il y a un cas exceptionnel où l’application essaie de récupérer le fichier du stockage et le fichier n’existe pas. Et si ce cas n’est pas traité correctement, l’application se bloque. Ce sera une mauvaise expérience pour les utilisateurs. C’est le type d’erreur qui ne peut pas être contrôlé par le programmeur. Mais les programmeurs peuvent prendre certaines mesures pour l’éviter afin que l’application ne plante pas. L’action appropriée peut être prise à cette étape.
 
 

8. Est-il obligatoire qu’un bloc catch soit suivi d’un bloc try ?
Non, il n’est pas nécessaire qu’un bloc catch soit présent après un bloc try. – Un bloc try doit être suivi soit d’un bloc catch, soit d’un bloc finally. Si les exceptions sont plus nombreuses, elles doivent être déclarées à l’aide de la clause throws de la méthode
 
 

9. Le bloc finally sera-t-il exécuté si l’instruction return est écrite à la fin du bloc try et du bloc catch comme indiqué ci-dessous ?
public int myMethod(int i){
   try{
       //code...
       return 1;
   }catch(Exception e){
       //code...
       return 1000;
   }finally{
       //code...
   }
}
Le bloc finally sera exécuté indépendamment de l’exception qui a été levée ou non. Le seul cas où le bloc finally n’est pas exécuté est lorsqu’il rencontre la méthode ‘System.exit()’ n’importe où dans le bloc try/catch.
 
 

10. Peut-on appeler un constructeur d’une classe à l’intérieur d’un autre constructeur ?
Oui, le concept peut être nommé chaînage de constructeurs et peut être réalisé en utilisant this(). Exemple:

class Main {
    public static void main(String args[]) {
        B b = new B(10);
    }
}
class B{
    B(){
        System.out.println(" Constructeur 1 de B ");
    }
    B(int x){
        this();
        System.out.println(" Constructeur 2 de B ");
    }
}
 

Laisser un commentaire

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