Passez en revue ces 50 questions pour résoudre votre entretien de programmation Java

Une liste des questions Java fréquemment posées lors des entretiens d'embauche de programmation.

Bonjour tous le monde! Au cours des dernières années, j'ai partagé de nombreuses questions et discussions sur Java Interview individuellement. Beaucoup de mes lecteurs ont demandé que je les rassemble afin qu'ils puissent les avoir au même endroit. Cet article en est le résultat.

Cet article contient plus de 50 questions d'entrevue Java couvrant tous les sujets importants tels que les principes fondamentaux de Java Core, Java Collection Framework, Java multithreading et simultanéité, Java IO, JDBC, JVM Internals, problèmes de codage, programmation orientée objet, etc.

Les questions sont également tirées de divers entretiens et elles ne sont en aucun cas très difficiles. Vous les avez peut-être déjà vus dans votre téléphone ou lors de vos entretiens en face à face.

Les questions sont également très utiles pour passer en revue des sujets importants comme le multithreading et les collections. J'ai également partagé des ressources utiles pour un apprentissage et une amélioration ultérieurs, comme The Complete Java MasterClass, pour rafraîchir et combler les lacunes dans vos compétences Java.

alors qu'attendons-nous? Voici la liste de certaines des questions Java les plus fréquemment posées lors des entretiens pour les développeurs Java débutants et expérimentés.

Plus de 50 questions d'entrevue Java pendant 2 à 3 ans Programmeurs expérimentés

Alors, sans perdre plus de temps, voici ma liste de quelques-unes des questions d'entrevue Core Java fréquemment posées pour les programmeurs débutants. Cette liste se concentre sur les développeurs débutants et moins expérimentés, comme quelqu'un avec 2 à 3 ans d'expérience en Java.

1) Comment Java atteint-il l'indépendance de la plateforme? (répondre)

astuce: bytecode et machine virtuelle Java

2) Qu'est-ce que ClassLoaderJava? (répondre)

astuce: partie de JVM qui charge des bytecodes pour les classes. Vous pouvez écrire le vôtre.

3) Ecrire un programme Java pour vérifier si un nombre est pair ou impair? (répondre)

astuce: vous pouvez utiliser un opérateur au niveau du bit, comme ET au niveau du bit, rappelez-vous que même le nombre a zéro à la fin au format binaire et un nombre impair a 1 à la fin.

4) Différence entre ArrayListet HashSeten Java? (répondre)

astuce: toutes les différences entre Listet Setsont applicables ici, par exemple la commande, les doublons, la recherche aléatoire, etc. Voir Java Fundamentals: Collections de Richard Warburton pour en savoir plus sur ArrayList, HashSet et d'autres collections importantes en Java.

5) Qu'est-ce que le verrouillage double vérifié dans Singleton? (répondre)

astuce: vérifiez deux fois si les instances sont initialisées ou non, la première sans verrouillage et la seconde avec verrouillage.

6) Comment créer un Singleton thread-safe en Java? (répondre)

astuce: de nombreuses façons, comme utiliser Enum ou en utilisant un modèle de verrouillage double-vérifié ou en utilisant une classe statique imbriquée.

7) Quand utiliser la variable volatile en Java? (répondre)

astuce: lorsque vous devez indiquer à la JVM qu'une variable peut être modifiée par plusieurs threads et donner une indication à la JVM qui ne cache pas sa valeur.

8) Quand utiliser une variable transitoire en Java? (répondre)

astuce: lorsque vous souhaitez rendre une variable non sérialisable dans une classe, qui implémente l'interface Serializable. En d'autres termes, vous pouvez l'utiliser pour une variable dont vous ne souhaitez pas enregistrer la valeur. Voir The Complete Java MasterClass pour en savoir plus sur les variables transitoires en Java.

9) Différence entre la variable transitoire et volatile en Java? (répondre)

astuce: totalement différent, l'un utilisé dans le contexte de la sérialisation tandis que l'autre est utilisé en simultanéité.

10) Différence entre sérialisable et extériorisable en Java? (répondre)

astuce: externalisable vous donne plus de contrôle sur le processus de sérialisation.

11) Pouvons-nous remplacer la méthode privée en Java? (répondre)

astuce: Non, car il n'est pas visible dans la sous-classe, une exigence principale pour remplacer une méthode en Java.

12) Différence entre Hashtableet HashMapen Java? (répondre)

astuce: plusieurs mais le plus important est Hashtable, qui est synchronisé, tandis que HashMapne l'est pas. C'est aussi hérité et lent par rapport à HashMap.

13) Différence entre Listet Set en Java? (répondre)

indice: Listest ordonné et permet la duplication. Setn'est pas ordonné et n'autorise pas les éléments en double.

14) Différence entre ArrayListet Vectoren Java (réponse)

astuce: Beaucoup, mais le plus important est qu'il ArrayListest non synchronisé et rapide alors qu'il Vectorest synchronisé et lent. C'est aussi une classe héritée comme Hashtable.

15) Différence entre Hashtableet ConcurrentHashMapen Java? (répondre)

indice: plus évolutif. Voir Java Fundamentals: Collections de Richard Warburton pour en savoir plus.

16) Comment ConcurrentHashMapparvenir à l'évolutivité? (répondre)

astuce: en divisant la carte en segments et en ne verrouillant que pendant l'opération d'écriture.

17) Quelles sont les deux méthodes que vous remplacerez pour une Objectutilisation comme Keydans HashMap? (répondre)

indice: égal et hashcode

18) Différence entre attendre et dormir en Java? (répondre)

astuce: la wait()méthode libère le verrou ou le moniteur, contrairement au mode veille.

19) Différence entre notifyet notifyAllen Java? (répondre)

astuce: notifynotifie qu'un thread aléatoire attend ce verrou tout en notifyAllinformant tous les threads en attente d'un moniteur. Si vous êtes certain qu'un seul thread attend notify, utilisez , sinon notifyAllc'est mieux. Voir le mini-cours Threading Essentialspar le champion Java Heinz Kabutz pour en savoir plus sur les bases du threading.

20) Pourquoi remplacez-vous le hashcode, avec equals()en Java? (répondre)

astuce: pour être conforme avec equals et hashcode contract, qui est requis si vous prévoyez de stocker votre objet dans des classes de collection, par exemple HashMapou ArrayList.

21) Quel est le facteur de charge des HashMapmoyens? (répondre)

indice: le seuil qui déclenche le redimensionnement de HashMapest généralement de 0,75, ce qui signifie se HashMapredimensionner s'il est plein à 75%.

22) Différence entre ArrayListet LinkedListen Java? (répondre)

astuce: comme un tableau et une liste chaînée, l'un permet une recherche aléatoire tandis que l'autre ne le fait pas. L'insertion et la suppression sont faciles sur la liste chaînée mais la recherche est facile sur un tableau. Voir Java Fundamentals: Collections , le cours de Richard Warburton sur Pluralsight, pour en savoir plus sur la structure de données essentielle de Collection en Java.

23) Différence entre CountDownLatchet CyclicBarrieren Java? (répondre)

astuce: vous pouvez réutiliser une CyclicBarrierfois que la barrière est cassée mais vous ne pouvez pas réutiliser une CountDownLatchfois que le nombre atteint zéro.

24) Quand utilisez-vous Runnablevs Threaden Java? (répondre)

indice: toujours

25) Quelle est la signification du fait qu'Enum est de type sécurisé en Java? (répondre)

astuce: Cela signifie que vous ne pouvez pas affecter une instance de type Enum différent à une variable Enum. Par exemple, si vous avez une variable comme DayOfWeekday, vous ne pouvez pas lui attribuer une valeur depuis DayOfMonthenum.

26) Comment fonctionne l'Autoboxing d'Integer en Java? (répondre)

astuce: en utilisant la valueOf()méthode en Java.

27) Différence entre PATHet Classpathen Java? (répondre)

astuce: PATHest utilisé par le système d'exploitation tandis que Classpathest utilisé par JVM pour localiser le binaire Java, par exemple les fichiers JAR ou les fichiers de classe. Voir Java Fundamentals: Le Core Platform pour en savoir plus sur PATH, Classpathet d' autres variables d'environnement Java.

28) Différence entre la surcharge et le remplacement de méthode en Java? (répondre)

astuce: le remplacement se produit à la sous-classe tandis que la surcharge se produit dans la même classe. En outre, le remplacement est une activité d'exécution tandis que la surcharge est résolue au moment de la compilation.

29) Comment empêcher une classe d'être sous-classée en Java? (répondre)

indice: il suffit de rendre son constructeur privé

30) Comment empêchez-vous votre classe d'être utilisée par votre client? (répondre)

astuce: rendez le constructeur privé ou lancez une exception du constructeur

31) Différence entre StringBuilderet StringBufferen Java? (répondre)

indice: StringBuildern'est pas synchronisé tant qu'il StringBufferest synchronisé.

32) Différence entre polymorphisme et héritage en Java? (répondre)

astuce: l'héritage permet la réutilisation du code et construit la relation entre les classes, ce qui est requis par le polymorphisme, qui fournit un comportement dynamique. Voir les principes de base de Java: conception orientée objetpour en savoir plus sur les fonctionnalités de la POO.

33) Pouvons-nous remplacer la méthode statique en Java? (répondre)

astuce: Non, car le remplacement est résolu au moment de l'exécution tandis que l'appel de méthode statique est résolu au moment de la compilation.

34) Peut-on accéder à la méthode privée en Java? (répondre)

indice: oui, dans la même classe mais pas en dehors de la classe

35) Différence entre interface et classe abstraite en Java? (répondre)

indice: à partir de Java 8, la différence est floue. Cependant, une classe Java peut toujours implémenter plusieurs interfaces mais ne peut étendre qu'une seule classe.

36) Différence entre l'analyseur DOM et SAX en Java? (répondre)

astuce: DOM charge tout le fichier XML en mémoire alors que SAX ne le fait pas. C'est un analyseur basé sur des événements et peut être utilisé pour analyser un gros fichier, mais DOM est rapide et devrait être préféré pour les petits fichiers.

37) Différence entre les mots clés throw et throws en Java? (répondre)

astuce: throws déclare quelle exception une méthode peut lancer en cas d'erreur, mais throw keyword lève en fait une exception. Consultez les principes de base de Java: gestion des exceptions pour en savoir plus sur la gestion des exceptions en Java.

38) Différence entre les itérateurs à sécurité intégrée et rapide en Java? (répondre)

astuce: la sécurité intégrée ne lance pas ConcurrentModificationExceptionwhile fail-fastquand ils détectent un changement extérieur sur la collection sous-jacente tout en l'itérant.

39) Différence entre Iterator et Enumeration en Java? (répondre)

astuce: Iterator vous donne également la possibilité de supprimer un élément lors de l'itération alors que l'énumération ne le permet pas.

40) Qu'est-ce que IdentityHashMapJava? (répondre)

indice: A Map, qui utilise l' ==opérateur d'égalité pour vérifier l'égalité au lieu de la equals()méthode.

41) Qu'est-ce que le Stringpool en Java? (répondre)

indice: Un pool de Stringlittéraux. N'oubliez pas qu'il a été déplacé vers le tas de l'espace perm gen dans JDK 7.

42) Une Serializableclasse peut-elle contenir un champ non sérialisable en Java? (répondre)

indice: Oui, mais vous devez le rendre statique ou transitoire.

43) Différence entre ceci et super en Java? (répondre)

astuce: cela fait référence à l'instance actuelle tandis que super fait référence à une instance de la superclasse.

44) Différence entre Comparatoret Comparableen Java? (répondre)

astuce: Comparatordéfinit l'ordre personnalisé tandis que Comparabledéfinit l'ordre naturel des objets, par exemple l'ordre alphabétique pour String. Voir The Complete Java MasterClass pour en savoir plus sur le tri en Java.

45) Différence entre java.util.Dateet java.sql.Dateen Java? (répondre)

astuce: ancien contient à la fois la date et l'heure, tandis que plus tard ne contient que la partie date.

46) Pourquoi les méthodes wait and notify sont déclarées dans la Objectclasse en Java? (répondre)

astuce: parce qu'ils nécessitent un verrou qui n'est disponible que pour un objet.

47) Pourquoi Java ne prend pas en charge les héritages multiples? (répondre)

astuce: il ne prend pas en charge en raison d'une mauvaise expérience avec C ++, mais avec Java 8, c'est le cas dans un certain sens - seuls les héritages multiples de Typene sont pas pris en charge dans Java actuellement.

48) Différence entre Exception cochée et non cochée en Java? (répondre)

astuce: en cas de coché, vous devez gérer l'exception en utilisant le bloc catch, tandis qu'en cas de décoché, c'est à vous; compiler ne vous dérangera pas.

49) Différence entre erreur et exception en Java? (répondre)

indice: je suis fatigué de taper s'il vous plaît vérifier la réponse

50) Différence entre condition de course et blocage en Java? (répondre)

astuce: les deux sont des erreurs qui se produisent dans une application simultanée, l'une se produit à cause de la planification des threads tandis que d'autres se produisent à cause d'un mauvais codage. Consultez Multithreading et calcul parallèle en Java pour en savoir plus sur les blocages, les conditions de concurrence et d'autres problèmes de multithreading.

Notes de clôture

Merci, vous êtes arrivé à la fin de l'article… Bonne chance avec votre interview de programmation! Ce ne sera certainement pas facile, mais en suivant cette feuille de route et ce guide, vous êtes sur le point de devenir ingénieur DevOps.

Si vous aimez cet article, partagez-le avec vos amis et collègues, et n'oubliez pas de suivre javinpaul sur Twitter!

Ressources additionnelles

  • Guide d'entretien Java: plus de 200 questions et réponses d'entrevue
  • Guide d'entretien Spring Framework - Plus de 200 questions et réponses
  • Se préparer à un entretien d'embauche par John Sonmez
  • Entretien de programmation Java dévoilé par Markham
  • Cracking the Coding Interview - 189 questions et réponses
  • Analyse de la structure des données et des algorithmes pour les entretiens d'embauche
  • 130+ questions d'entrevue Java des 5 dernières années
PS - Si vous avez besoin de ressources GRATUITES pour apprendre Java, vous pouvez consulter cette liste de cours Java gratuits pour commencer votre préparation.

PSS - Je n'ai pas fourni la réponse aux questions d'entretien partagées dans l'image "Combien d'objets String sont créés dans le code?" pouvez-vous deviner et expliquer?