JavaRush /Blog Java /Random-FR /Pause café #101. 19 questions d'entretien Java essentiell...

Pause café #101. 19 questions d'entretien Java essentielles et exemples de réponses courtes

Publié dans le groupe Random-FR
Source : Hackernoon Voici quelques questions et réponses qui reviennent souvent dans les entretiens Java.

1. Qu'est-ce que le kit de développement Java (JDK) ?

Le JDK est un kit de développement logiciel qui comprend les outils et bibliothèques nécessaires au développement d'applications Java.

2. Que fait Java Runtime Environment (JRE) ?

JRE fait référence à l'environnement d'exécution dans lequel le bytecode Java s'exécute. Le JRE gère les fichiers et les bibliothèques pour le runtime.

3. Que fait la machine virtuelle Java (JVM) ?

La JVM est une machine abstraite qui fournit un environnement d'exécution dans lequel le bytecode Java peut s'exécuter.

4. Java est indépendant de la plate-forme. Pourquoi?

Dans tout autre langage de programmation, le code source est compilé en code exécutable et le code peut ne pas s'exécuter sur toutes les plates-formes. En utilisant JVM, nous pouvons rendre le bytecode compréhensible pour n'importe quelle plate-forme et ce bytecode est indépendant de la plate-forme. Bien que la JVM soit différente pour chaque plate-forme, Java est indépendant de la plate-forme car il ne dépend d’aucun type de plate-forme.

5. Java n'est pas 100 % orienté objet. Pourquoi?

Parce que Java utilise huit types de données primitifs comme boolean, byte, char, int, float, double, long, short qui ne sont pas des objets.

6. Que sont les constructeurs en Java ?

Un constructeur est un bloc de code utilisé pour initialiser des objets. Syntaxe:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
Exemple:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
Résultat:
26

7. Que fait une classe singleton ?

Les classes Singleton ne peuvent avoir qu’un seul objet (instance de classe) à la fois. Une fois l'objet créé et que nous essayons d'instancier la classe singleton , la nouvelle variable pointe également vers le premier objet créé.

8. Que sont les classes wrapper en Java ?

Les classes Wrapper permettent de convertir des types de données primitifs en objet et vice versa. Exemple:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. Quelle est la différence entre l'opérateur == et la méthode d'égalité en Java ?

En général, == est un opérateur et equals() est une méthode. Nous utilisons l' opérateur == pour référencer des objets de comparaison sur le tas. Il n'y a pas de concept de surcharge d'opérateurs en Java. Malgré cela, l’ opérateur == est utilisé pour vérifier si l’adresse de deux objets est la même ou non. Autrement dit, l' opérateur == vérifie si les deux objets pointent ou non vers le même emplacement mémoire. L'opérateur == est également utilisé pour comparer les types d'objets et les types primitifs tels que les booléens. Alors que la méthode equals() de la classe String compare le contenu de deux objets.

10. Quels sont les concepts de la POO en Java ?

  • L'abstraction est définie comme masquant l'implémentation interne et affichant uniquement les informations nécessaires.
  • L'héritage est la procédure de conversion de toutes les propriétés et comportements d'une classe parent (superclasse) en une classe enfant (sous-classe).
  • L'encapsulation est la procédure consistant à lier des données ou des variables et des méthodes ensemble.
  • Le polymorphisme signifie littéralement plusieurs formes. Le polymorphisme est la capacité d'une méthode à effectuer différentes tâches. Ceci peut être réalisé en utilisant des méthodes.

11. Pourquoi la méthode main() est-elle toujours statique en Java ?

Car il n’est pas nécessaire d’appeler une méthode statique sur un objet. Si main() devait être une méthode non statique, la machine virtuelle Java doit d'abord créer son objet puis appeler la méthode main() , ce qui entraînera l'allocation de mémoire supplémentaire.

12. Pourquoi les chaînes sont-elles immuables en Java ?

Les chaînes en Java sont immuables car les objets String sont mis en cache dans le pool de constantes de chaîne .

13. Que sont les tableaux et ArrayList en Java ?

Un tableau est un objet contenant un nombre fixe d’éléments d’un type similaire.
  1. ArrayList fait partie de la structure de la collection.

  2. ArrayList implémente l'interface de liste.

  3. Une ArrayList est un tableau évolutif qui grandit dynamiquement à mesure que des éléments sont ajoutés et rétrécit à mesure que des éléments sont supprimés.

  4. Pour les opérations de récupération fréquentes, Java ArrayList est le meilleur choix . Parce que les éléments d’ un ArrayList sont stockés dans des emplacements mémoire consécutifs.

  5. ArrayList ne peut pas contenir de types de données primitifs tels que int, double, char et long.

  6. ArrayList peut contenir des objets de classe String et wrapper ( Double , Integer ).

  7. ArrayList vous permet de dupliquer des éléments.

  8. ArrayList préserve l'ordre d'insertion.

  9. ArrayList est largement utilisé en raison de sa fonctionnalité et de sa flexibilité. Il est conçu pour stocker des collections hétérogènes d’objets.

  10. Une ArrayList peut avoir n’importe quel nombre de valeurs nulles.

14. Quelle est la différence entre HashSet et HashMap en Java ?

Dans HashSet :
  1. Nous pouvons stocker des objets dans un HashSet . Par exemple, HashSet : {"Hello", "World"} .

  2. L'ordre d'insertion n'est pas conservé. Il est basé sur un code de hachage.

  3. Possède une méthode add() .

  4. Implémente l' interface Set .

  5. N'autorise pas les éléments en double.

  6. Autorise une seule valeur nulle.

Dans HashMap :
  1. Dans HashMap, nous pouvons stocker des paires clé et valeur. Par exemple, {1 -> "Bonjour", 2 -> "Monde"} .

  2. Ne prend pas en charge l'ordre d'insertion. Il est basé sur la fonction de hachage.

  3. Possède une méthode put() .

  4. Implémente l'interface cartographique.

  5. Permet les valeurs en double. N'autorise pas les clés en double.

  6. Autorise une seule clé nulle et un nombre illimité de valeurs nulles.

16. Quelle est la différence entre this et super en Java ?

Le mot-clé this en Java :
  1. il s'agit d'un mot-clé qui est une variable de référence qui fait référence à l'objet actuel.

  2. Peut être utilisé pour appeler implicitement la méthode de classe actuelle.

  3. Le mot-clé this() , utilisé pour appeler le constructeur de la classe actuelle.

  4. Cela peut être utilisé pour passer comme argument lors de l’appel d’une méthode.

Super mot-clé en Java :
  1. Le super mot-clé est une variable de référence utilisée pour faire référence à l'objet immédiat de la classe parent.

  2. super peut être utilisé pour appeler directement une méthode d'une classe parent, un constructeur d'une classe parent et pour accéder aux méthodes d'une classe de base.

17. Qu'est-ce que l'instruction break et continue en Java ?

Si une instruction break se produit dans une boucle, la boucle se terminera et le contrôle passera à l'instruction suivante dans la même boucle. Exemple:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
Résultat:
12
L' instruction continue passe à l'itération suivante de la boucle en fonction d'une certaine condition. Exemple:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
Résultat:
2 4 6 8 10

18. Que sont les modificateurs d'accès en Java ?

Les modificateurs d'accès définissent la limite ou la portée d'une variable, d'un constructeur, d'une classe ou d'une méthode. Il existe quatre types de modificateurs d'accès en Java :
  1. Modificateur d'accès privé.
  2. Modificateur d'accès protégé.
  3. Modificateur de partage.
  4. Modificateur d'accès par défaut.

19. Quelle est la différence entre la boucle for et la boucle for each en Java ?

pour la boucle :
  1. N'a pas de séquence exécutable. Dans la boucle for, on peut changer le compteur à notre guise.
  2. Apparu au tout début, dans le JDK 1.
  3. Il n'est pas nécessaire d'implémenter l'interface.
  4. Peut avoir accès à l'index. Il est donc possible de remplacer un élément dans un tableau.
  5. Le compteur peut augmenter et diminuer.
Pour chaque boucle :
  1. Effectué séquentiellement. Le compteur augmente de un.
  2. Apparu pour la première fois dans JDK 5.
  3. Pour parcourir les conteneurs à l’aide d’une boucle for-each, le conteneur doit implémenter l’interface Iterable.
  4. Il n'est pas possible de remplacer l'élément à cet index car l'index du tableau n'est pas accessible.
  5. Ne peut itérer que dans un ordre croissant, ne peut pas diminuer.
Exemple de la différence entre les boucles for each et for :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
Résultat pour les boucles for et for each :
Virat Rohit Dhoni.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION