JavaRush /Blog Java /Random-FR /Pause café #145. 90 questions et réponses d'entretien Jav...

Pause café #145. 90 questions et réponses d'entretien Java fréquemment posées

Publié dans le groupe Random-FR
Source : Usemynotes Cette publication contient une liste de questions souvent rencontrées lors des entretiens avec des développeurs Java débutants et intermédiaires. Pause café #145.  90 questions et réponses d'entretien Java fréquemment posées - 1

1. Qu'est-ce qui fait de Java un langage indépendant de la plate-forme ?

Java est appelé langage indépendant de la plateforme car le byte code généré par le JDK (Java Development Kit) peut être exécuté par la JVM (Java Virtual Machine) sur n'importe quelle plateforme, quel que soit le système d'exploitation.

2. Pourquoi Java n’est-il pas un langage entièrement orienté objet ?

Java n'est pas un langage entièrement orienté objet car il utilise huit types de données primitifs qui ne sont pas des objets : boolean , byte , char , int , float , double , long et short .

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

La méthode main() est déclarée statique afin qu'elle puisse être directement appelée depuis la JVM sans créer d'objet ou d'instance de la classe dans laquelle elle est déclarée.

4. Que sont les classes wrapper en Java ?

En Java, chaque type de données primitif tel que int , float a une classe correspondante appelée classes wrapper. Ils sont également appelés wrappers car ils encapsulent ou convertissent un type de données primitif en objets.

5. Qu'est-ce qu'un constructeur en Java ?

Les constructeurs en Java sont des méthodes spéciales qui sont automatiquement appelées lors de la création d'un objet ou d'une instance. Les noms du constructeur et de la classe doivent correspondre.

6. Quelles sont les différences entre les tableaux et ArrayList en Java ?

Tableaux Liste des tableaux
Il s'agit d'une structure de données statique, ce qui signifie que sa taille est fixe et ne peut pas être modifiée. Il s'agit d'un tableau de longueur variable ou de taille dynamique dans une structure de collection, ce qui signifie que sa taille peut être modifiée selon les besoins.
Ils peuvent stocker à la fois des objets et des types primitifs. Il ne peut stocker ou contenir que des objets, mais pas des types primitifs.
On peut accéder à un élément en spécifiant son index entre crochets [ ]. Nous pouvons accéder à un élément en spécifiant son numéro d'index dans la méthode get() .

7. Pourquoi Java n'utilise-t-il pas de pointeurs ?

Java n'utilise pas de pointeurs car ils ne sont pas sûrs et ajoutent également de la complexité au programme. De plus, Java évite les pointeurs pour éviter de fournir un accès direct à la mémoire à l'utilisateur.

8. Quels types de modificateurs d'accès existe-t-il en Java ?

En Java, les modificateurs d'accès sont des mots-clés utilisés pour indiquer l'accès à une classe et à des méthodes en dehors de la classe ou dans une autre classe. Il existe quatre types différents de modificateurs d'accès en Java :
  • Défaut
  • Publique
  • Privé
  • Protégé

9. Qu'est-ce que JIT en Java ?

JIT est l'acronyme de Just-In-Time Compiler en Java. Au moment de l'exécution, il convertit le bytecode en code machine natif. Le compilateur JIT permet d'améliorer les performances des programmes Java.

10. Qu'est-ce que le mot-clé final en Java ?

Le mot-clé final en Java est utilisé pour représenter des constantes. Il peut être utilisé avec des variables, des classes et des méthodes.
  • Si le mot-clé final est utilisé avec des variables, vous ne pouvez pas modifier sa valeur.
  • Si le mot-clé final est utilisé avec des méthodes, vous ne pouvez pas remplacer cette méthode.
  • Si vous déclarez une classe final , cette classe ne peut pas être étendue ou héritée par une sous-classe.

11. Quels sont les concepts de base de la POO ou de la programmation orientée objet en Java ?

La programmation orientée objet ou POO en Java utilise 4 concepts principaux :
  • Encapsulation.
  • Abstraction.
  • Héritage.
  • Polymorphisme.

12. Qu'est-ce qu'une classe singleton en Java et comment faire d'une classe un singleton ?

En Java, une classe singleton est une classe qui n'a qu'une seule instance ou objet. En créant un constructeur privé, nous pouvons faire de la classe un singleton.

13. Quelle est la différence entre les variables locales et les variables d'instance en Java ?

Une variable locale est définie dans un bloc ou une méthode. La portée d'une variable locale se situe exclusivement à l'intérieur du bloc. Une variable d'instance de classe est une variable définie dans la classe mais en dehors de la méthode. On y accède en créant un objet de la classe et se termine lorsque l'objet est supprimé.

14. Qu'est-ce que la POO ou la programmation orientée objet ?

La programmation orientée objet ou POO est un paradigme de programmation utilisé pour développer des programmes ou des applications utilisant le concept d'objets.

15. Qu'est-ce qui rend les chaînes Java immuables ?

Les chaînes en Java sont immuables, ce qui signifie qu'une fois qu'un objet chaîne est créé, il ne peut pas être mis à jour, mais un nouvel objet chaîne est créé. En effet, les objets chaîne sont mis en cache dans le pool de chaînes.

16. Décrire les différences entre les classes d'interface et les classes abstraites en Java

Interface Classe abstraite
Ne peut avoir que des méthodes abstraites. Autorise les méthodes abstraites et non abstraites.
La sous-classe implémente l'interface à l'aide du mot-clé Implements . Une sous-classe ou une classe dérivée hérite de l'abstraction en utilisant des mots-clés pour étendre l'implémentation (extends).
Une interface ne peut avoir que des méthodes statiques publiques sans implémentation. Il peut avoir des méthodes sans implémentation ou avec implémentation.
Toutes les méthodes d'une interface doivent être implémentées par la classe qui l'implémente. Une classe qui hérite d’une classe abstraite n’est pas obligée d’implémenter toutes les méthodes de sa superclasse.

17. Qu'entendez-vous par polymorphisme et quels sont ses types ?

Le polymorphisme en Java est la capacité d'un objet à prendre plusieurs formes. Elle peut également être définie comme une tâche ou une activité unique qui peut être accomplie de différentes manières. Le polymorphisme est divisé en deux types :
  1. Polymorphisme au moment de la compilation.
  2. Polymorphisme d'exécution.

18. Comment Java réalise-t-il le polymorphisme au moment de la compilation et de l'exécution ?

En Java, le polymorphisme au moment de la compilation est obtenu grâce à une surcharge de méthode, tandis que le polymorphisme au moment de l'exécution est obtenu grâce au remplacement de méthode.

19. Qu'entendez-vous par abstraction et comment est-elle réalisée en Java ?

L'abstraction est l'acte de représenter des informations importantes sans montrer les détails internes ou de mise en œuvre. En Java, cela est réalisé grâce à l'utilisation de classes et d'interfaces abstraites.

20. Que sont les interfaces en Java ?

Une interface en Java est un ensemble de méthodes abstraites avec uniquement des déclarations de fonctions, mais aucune implémentation. Nous ne pouvons pas créer d'objets ou d'instances d'une interface. Une interface ne peut pas avoir de constructeurs. Une classe peut implémenter plusieurs interfaces à l'aide du mot-clé Implements en Java.

21. Quels types d’héritage existe-t-il en Java ?

En Java, nous utilisons les mots-clés extends pour hériter des attributs et des méthodes d'une super classe ou d'une classe de base. Il existe cinq types d'héritage :
  1. Héritage unique.
  2. Héritage à plusieurs niveaux.
  3. Héritage hiérarchique.
  4. Héritage multiple via l'interface.
  5. Héritage hybride.

22. Pourquoi Java ne prend-il pas en charge l'héritage multiple ?

Java ne prend pas en charge l'héritage multiple pour éviter toute ambiguïté. Par exemple, supposons qu'il existe deux superclasses A et B et une sous-classe C qui hérite à la fois de A et B. Les deux classes A et B ont une méthode show() . Si nous appelons la méthode show() en créant un objet de classe C, alors le compilateur renvoie une erreur car il n'est pas clair quelle classe de la méthode show() doit être exécutée.

23. Quelle est la différence entre la surcharge de méthode et le remplacement de méthode ?

Surcharge de méthode Remplacement de méthode
Polymorphisme au moment de la compilation. Polymorphisme d'exécution.
Deux méthodes ou plus dans la même classe avec le même nom de fonction ou de méthode mais des signatures différentes. Deux méthodes ou plus qui ont la même fonction ou le même nom de méthode et la même signature dans des classes différentes.

24. Est-il possible de remplacer une méthode statique ou privée en Java ?

Une méthode privée n’est pas accessible en dehors de la classe, elle ne sera donc pas remplacée par une sous-classe. Il ne peut donc pas être annulé. De même, une méthode statique ne peut pas être remplacée car si nous créons des méthodes statiques avec le même nom de méthode et la même signature dans la classe de base et la classe dérivée, la classe dérivée masquera les méthodes dans la classe de base. C’est ce qu’on appelle le masquage de méthode.

25. Qu'est-ce que la surcharge de constructeur en Java ?

En Java, un constructeur est considéré comme surchargé si une classe possède plusieurs constructeurs, mais avec une liste de paramètres différente.

26. Pouvons-nous définir une classe abstraite même si elle n'a pas de méthodes abstraites ?

Oui, nous pouvons créer une classe abstraite même si elle n'a pas de méthode abstraite. Cependant, si une classe contient au moins une méthode abstraite, elle doit être définie comme abstraite, sinon une erreur se produira.

27. À quoi servent les variables et méthodes statiques ?

Nous utilisons des membres statiques (méthodes et variables) lorsque nous souhaitons utiliser une méthode ou une variable commune pour tous les objets d'une classe au lieu de créer plusieurs copies de chaque objet. Par exemple, dans la classe Employee, le nom de la société peut être rendu statique car tous les objets porteront le même nom de société.

28. Combien de types différents de constructeurs existe-t-il en Java ?

Il existe 2 types de constructeurs en Java :
  1. Le constructeur par défaut n'accepte aucun paramètre.
  2. Constructeur paramétré - prend au moins un paramètre.

29. Java utilise-t-il un constructeur de copie ?

Non, Java n'a pas de constructeur de copie comme C++.

30. Énoncer les différences entre le constructeur et les méthodes en Java

Constructeur Méthode
Il est obligatoire que le nom du constructeur et le nom de la classe correspondent. Le nom de la méthode peut ou non être le même que le nom de la classe.
Il ne peut pas avoir de type de retour. Obligatoire d’avoir un type de retour.
Les constructeurs ne peuvent pas être statiques. La méthode peut être statique ou non.
Il est invoqué ou appelé automatiquement lorsqu'un objet ou une instance d'une classe est créé. Il est invoqué ou appliqué en utilisant le nom de l'objet accompagné d'un point (.).
Il est utilisé pour initialiser l'état d'un objet. Il est utilisé pour définir le comportement d'un objet.

31. Est-il possible d'exécuter un programme sans utiliser la méthode main() ?

Non, un programme ne peut pas être exécuté sans la méthode main() en Java car l'exécution du programme commence à partir de la méthode main() .

32. Que signifie le mot-clé this en Java ?

Le mot-clé this en Java est une variable de référence utilisée pour faire référence à l'objet actuel appelant une méthode ou une variable.

33. Est-il possible d'utiliser le mot-clé this en Java pour faire référence à des membres statiques ?

Oui, puisqu'il s'agit d'une variable de référence pour l'objet actuel, nous pouvons utiliser le mot-clé this pour faire référence aux membres statiques.

34. Pouvons-nous rendre la méthode main() en Java privée au lieu de publique ?

Nous pouvons rendre la méthode main() privée, mais nous obtiendrons alors une erreur d'exécution et donc le programme ne s'exécutera pas.

35. Que signifie le mot-clé super en Java ?

En Java, le mot-clé super est une variable de référence utilisée pour faire référence à un objet de la classe parent immédiate.

36. Énoncez les différences entre un vecteur et un tableau.

Vecteur Tableau
Il s'agit d'un tableau de taille dynamique. Il s'agit d'une structure de données de taille fixe.
Le vecteur est synchronisé. Le tableau n'est pas synchronisé.
C'est plus lent qu'un tableau. C'est plus rapide que le vecteur.
Il ne peut contenir ou stocker que des objets Java. Il est utilisé pour stocker à la fois les types primitifs et les objets Java.
Nous pouvons utiliser la méthode size() pour connaître la longueur du vecteur. Nous pouvons utiliser la propriété length pour connaître la longueur du tableau.

37. Qu'est-ce que le multithreading en Java ?

Le multithreading est le processus d'exécution de plusieurs tâches simultanément au sein d'un seul programme. Ceci est fait pour atteindre une charge maximale du processeur.

38. Quels sont les moyens d'implémenter le multithreading en Java ?

Le multithreading en Java peut être implémenté de deux manières :
  1. En implémentant l' interface Runnable dans java.lang.Runnable .
  2. En étendant la classe Thread dans java.lang.Thread .

39. Énoncez quelques différences entre les mots-clés super et this en Java.

Super Ce
Utilisé pour faire référence aux objets de la classe parent. Utilisé pour faire référence à l'objet de classe actuel.
Utilisé pour accéder aux méthodes d’une classe parent ou de base. Utilisé pour accéder à une méthode de la classe actuelle.
Appelle le constructeur par défaut de la classe de base. Appelle le constructeur par défaut de la classe actuelle.

40. Quelles sont les différences entre une sous-classe et une classe interne ?

Sous-classe Classe interne
Il s'agit d'une classe qui hérite des propriétés et des méthodes d'une classe de base ou parent. Il s'agit d'une classe imbriquée dans une autre classe.
Il peut accéder à tous les membres publics et protégés d’une superclasse ou d’une classe de base. Il a accès à tous les membres de la classe externe.

41. ​​​​Qu'est-ce qu'un chargeur de classe en Java ?

Le chargeur de classes Java est un composant de Java Runtime Environment ou JRE utilisé pour charger des classes Java dans la machine virtuelle Java (JVM) au moment de l'exécution.

42. Est-il nécessaire qu'un bloc Try soit suivi d'une gestion des exceptions Java dans un bloc Catch ?

Oui, il est obligatoire d'utiliser un bloc catch car toute exception levée par un bloc try doit être interceptée dans le bloc catch .

43. Nommez les types d'exceptions en Java

Les exceptions en Java sont de deux types :
  1. Exception non vérifiée
  2. Exception vérifiée

44. Quels sont les états des threads ?

Il existe 4 états de thread en Java :
  1. Nouveau flux.
  2. Exécutable.
  3. Non exécutable.
  4. Mort ou terminé.

45. Qu'est-ce qu'une NullPointerException ?

Lorsqu'un utilisateur tente d'accéder ou de modifier les valeurs d'un objet nul, une NullPointerException est levée .

46. ​​​​​​Quels types de mots-clés sont utilisés dans la gestion des exceptions Java ?

  1. essayer

  2. attraper

  3. enfin

  4. lancer

  5. jette

47. Est-il possible de surcharger la méthode main() en Java ?

Oui, la méthode main() peut être surchargée, mais la JVM ou la machine virtuelle Java appelle uniquement la méthode main() d'origine .

48. Est-il possible de remplacer la méthode main() en Java ?

Non, car la méthode main() est une méthode statique et les méthodes statiques ne peuvent pas être remplacées.

49. Quelles sont les différences entre equals() et == ?

En Java, equals() est une méthode utilisée pour comparer les valeurs de deux objets ou variables, tandis que == est un opérateur de comparaison utilisé pour comparer les adresses ou les emplacements mémoire de deux autres objets ou variables.

50. Un constructeur de classe peut-il renvoyer n’importe quelle valeur ?

Non, le constructeur n'a pas de type de retour, il ne peut donc renvoyer aucune valeur.

51. Définir l'agrégation

L'agrégation est une forme d'association définie comme une relation entre deux classes. Ceci est fait pour la réutilisation du code. Il s'agit d'une relation à sens unique ou unidirectionnelle entre deux classes.

52. Qu'est-ce qu'une association ?

Une association définit une relation entre deux classes utilisant des objets. La relation ou l'association peut être un-à-un, un-à-plusieurs, plusieurs-à-plusieurs ou plusieurs-à-un. L'agrégation et la composition sont deux formes d'association.

53. Qu'est-ce que la composition ?

La composition est une forme d'association dans laquelle deux classes dépendent l'une de l'autre.

54. Quelle est la différence entre la liaison dynamique et statique ?

Avec la liaison dynamique, la décision de lier une méthode à un objet est prise au moment de l'exécution. La liaison tardive est un autre nom pour la liaison dynamique. Avec la liaison statique, la décision de lier une méthode à un objet est prise au moment de la compilation. La liaison statique est un autre nom pour la liaison anticipée.

55. Énoncer la différence entre l'encapsulation et l'abstraction

Dans l'encapsulation, les données et les méthodes sont regroupées ou regroupées dans une seule unité appelée classe. L'abstraction affiche uniquement les informations importantes et masque les détails internes ou d'implémentation.

56. Qu'est-ce qu'une classe abstraite en Java ?

Une classe abstraite est une classe qui ne peut pas être instanciée, mais on peut créer une variable de référence. Une classe est déclarée abstraite à l'aide du mot-clé abstract. Il comprend des méthodes abstraites et non abstraites.

57. Pouvons-nous utiliser à la fois des mots-clés finaux et abstraits dans une méthode ?

Non, nous ne pouvons pas utiliser de méthodes finales et statiques avec abstract car une méthode abstraite doit être remplacée par une sous-classe et une méthode finale ne peut pas être remplacée.

58. Peut-on déclarer une méthode comme finale dans une interface ?

Non, nous ne pouvons pas déclarer une méthode comme finale car toutes les méthodes d'une interface sont abstraites, elle doit donc être implémentée par une sous-classe et une méthode finale ne peut pas être remplacée.

59. Nommez la classe de base de toutes les classes d'exception Java

La classe de base pour toutes les exceptions est java.lang.Throwable .

60. Est-il possible de créer plusieurs blocs catch dans un seul bloc try ?

Oui, nous pouvons créer plusieurs blocs catch pour un bloc try .

61. Définissez deux variables d'environnement qui doivent être spécifiées pour exécuter n'importe quel programme Java

  1. Variable de chemin.
  2. Variable de chemin de classe.

62. Est-il possible d'utiliser un destructeur en Java ?

Non, nous ne pouvons pas utiliser de destructeurs en Java.

63. Qu'entendez-vous par cours anonyme ?

Une classe interne anonyme en Java n'a pas de nom et ne crée qu'un seul objet.

64. Nommez une méthode Java qui doit être implémentée pour tous les threads

Méthode Run() .

65. Quelle est la différence entre break et continue en Java ?

Casser Continuer
Utilisé pour terminer ou terminer une boucle si une certaine condition est remplie. Utilisé pour ignorer l'exécution de la boucle pour l'itération en cours en fonction d'une condition.
Il peut être utilisé à l’intérieur d’une boucle et d’un interrupteur. Utilisé uniquement dans une boucle.

66. Que sont les pools de chaînes en Java ?

Un pool de chaînes en Java est une collection de chaînes stockées dans la mémoire tas.

67. Quelle est la différence entre les mots-clés throw et throws en Java ?

Lancer Jetés
Utilisé pour lever explicitement une exception. Utilisé pour déclarer une exception qui peut être levée par une méthode au moment de l'exécution.
Utilisé dans le corps de la méthode. En utilisant les mots-clés throws , nous pouvons déclarer plusieurs exceptions.
Throw est suivi d' une instance de la classe Exception . Il est suivi du nom de la classe Exception à lever.

68. Est-il possible d'appeler un constructeur à l'intérieur d'un autre constructeur de la même classe ?

Oui, nous pouvons appeler un constructeur de la même classe dans un autre constructeur en utilisant this() comme première ligne.

69. Est-il possible de comparer String Buffer et String class en Java ?

Non, nous ne pouvons pas comparer les objets String Buffer et String . Parce que nous aurons une erreur.

70. Dans quel ordre les constructeurs sont-ils appelés lors de l'héritage ?

Le constructeur de la classe parent ou de base est appelé en premier, puis le constructeur de la classe dérivée est appelé.

71. Pouvons-nous nommer un constructeur autre que le nom de la classe ?

Non, le constructeur et le nom de la classe doivent être identiques.

72. Que sont les packages Java ?

Un package est un ensemble de classes et d’interfaces regroupées.

73. Quelle est la différence entre les classes String et StringBuffer ?

Chaîne StringBuffer
La classe String est immuable. La classe StringBuffer est mutable.
Plus lent que StringBuffer . Plus rapide que String .
Il utilise plus de mémoire lors de la concaténation de plusieurs chaînes. Il utilise moins de mémoire lors de la concaténation de plusieurs chaînes.

74. Est-il possible de surcharger les méthodes statiques en Java ?

Oui, nous pouvons surcharger les méthodes statiques en Java en passant différentes signatures de fonction.

75.Quel composant de la mémoire, la pile ou le tas, est nettoyé lors du garbage collection ?

Tas.

76.Laquelle des classes de chaînes suivantes doit être utilisée lorsque les données doivent être mises à jour fréquemment ?

La classe StringBuffer doit être utilisée en cas de mises à jour fréquentes car elle est mutable et le pool de chaînes ne sera donc pas surchargé.

77. Que se passe-t-il si le mot-clé static n'est pas utilisé avec la méthode main() en Java ?

Il n'y aura pas d'erreur de compilation, mais au moment de l'exécution, nous obtiendrons une erreur NoSuchMethodError .

78. Un bloc final sera-t-il exécuté si une instruction return est placée à la fin des blocs try et catch ?

Oui, le bloc final s'exécutera toujours, qu'il y ait ou non une exception.

79. Est-il possible d'avoir plusieurs classes publiques dans un fichier source Java ?

Non, nous ne pouvons avoir qu'une seule classe publique dans un fichier source Java.

80. Une interface peut-elle étendre une autre interface ?

Oui, une interface peut étendre une autre interface à l'aide du mot-clé extends en Java.

81. Nommez les différents types de chargeurs de classes en Java

  1. Chargeur de classe Bootstrap

  2. Chargeur de classe d'extensions

  3. Chargeur de classe système

82. Que fait l'opérateur ternaire en Java ?

L'opérateur ternaire est utilisé en remplacement de l' opérateur if-else en Java. C'est le seul opérateur conditionnel contenant trois opérandes.

83. À quoi sert le garbage collection en Java ?

Le garbage collection Java est une méthode par laquelle les applications Java conservent automatiquement leur mémoire en supprimant ou en nettoyant les objets et packages inutilisés en mémoire.

84. Comment le constructeur par défaut est-il utilisé en Java ?

En Java, le constructeur par défaut est utilisé pour initialiser les données membres ou les variables membres d'un objet avec leurs valeurs par défaut. Il est automatiquement généré par le compilateur lorsqu'il n'y a aucun autre constructeur dans le programme.

85. Quelle est la différence entre le chemin et le chemin de classe en Java

  1. Le chemin de classe définit l'emplacement des fichiers de bytecode, c'est-à-dire les fichiers .class.
  2. Le chemin spécifie l'emplacement des fichiers .exe.

86. Quels sont les types de données en Java ?

Il existe 8 types de données en Java :
  1. court

  2. octet

  3. carboniser

  4. int

  5. flotter

  6. double

  7. long

  8. booléen

87. Quels sont les quatre concepts de la POO en Java ?

  1. Encapsulation.
  2. Abstraction.
  3. Polymorphisme.
  4. Héritage.

88. Pouvons-nous attribuer une valeur nulle au mot-clé this en Java ?

Non.

89. Qu'entendez-vous par bloc statique en Java ?

Le bloc statique en Java est utilisé pour initialiser les variables statiques d'une classe. Elle n'est exécutée qu'une seule fois : lors du premier chargement de la classe en mémoire.

90. Qu'est-ce qu'une exception ? Quel package contient toutes les définitions de classes d’exceptions en Java ?

Les exceptions sont des situations anormales qui se produisent pendant l'exécution du programme. Ils peuvent survenir à la suite d’une saisie incorrecte de l’utilisateur ou d’une logique d’encodeur incorrecte. Le package java.lang.Exception contient toutes les définitions de classes d'exception en Java.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION