JavaRush /Blog Java /Random-FR /Pause café #58. 20 questions d'entretien importantes qu'u...

Pause café #58. 20 questions d'entretien importantes qu'un développeur Java devrait connaître. Avantages de connaître plusieurs langages de programmation

Publié dans le groupe Random-FR

20 questions d'entretien importantes qu'un développeur Java devrait connaître

Source : Dev.toPause café #58.  20 questions d'entretien importantes qu'un développeur Java devrait connaître.  Avantages de connaître plusieurs langages de programmation - 1

1. Quels sont les deux types d’exceptions en Java ? Quelle est la différence entre eux?

Réponse : Il existe deux types d’exceptions en Java : les exceptions cochées et non cochées.
  1. Les exceptions non contrôlées n'ont pas besoin d'être déclarées dans une instruction de mot-clé de méthode ou de constructeur si elles peuvent être levées lorsque la méthode ou le constructeur s'exécute et se propagent au-delà des limites de la méthode ou du constructeur.
  2. D'un autre côté, les exceptions vérifiées doivent être déclarées dans la méthode ou l'instruction de mot-clé du constructeur.

2. Qu'est-ce que la JVM ? Pourquoi Java est-il appelé « langage de programmation indépendant de la plate-forme » ?

Réponse : Java Virtual Machine (JVM) est une machine virtuelle de processus qui peut exécuter du bytecode Java. Chaque fichier source Java est compilé dans un fichier de bytecode, qui est exécuté par la JVM. Le langage Java est conçu pour créer des programmes d'application pouvant s'exécuter sur n'importe quelle plateforme, sans avoir besoin de réécrire ou de recompiler pour chaque plateforme individuelle. La machine virtuelle Java rend cela possible car elle connaît la longueur spécifique des instructions et d'autres fonctionnalités de la plate-forme matérielle sous-jacente.

3. Quelle est la différence entre une applet et une application Java ?

Répondre:
  • Les applets s'exécutent dans une fenêtre de navigateur compatible Java.
  • Une application Java est un programme Java autonome qui peut s'exécuter en dehors du navigateur.
Les deux nécessitent une machine virtuelle Java (JVM). Cependant, une application Java nécessite une méthode principale avec une signature spécifique pour commencer à s'exécuter. Les applets Java n'ont pas besoin d'une telle méthode pour commencer leur exécution. De plus, les applets Java utilisent généralement une politique de sécurité restrictive, tandis que les applications Java utilisent généralement une politique de sécurité plus souple.

4. Quelle est la différence entre JDK et JRE ?

Répondre:
  • Le Java Runtime Environment (JRE) est essentiellement une machine virtuelle Java (JVM) qui exécute vos programmes Java. Il comprend également des plugins de navigateur pour exécuter l'applet.
  • Le Java Development Kit (JDK) est un kit de développement logiciel complet pour le langage Java, comprenant le JRE, des compilateurs et des outils (tels que JavaDoc et Java Debugger) permettant à l'utilisateur de développer, de compiler et d'exécuter des applications Java.

5. Qu'est-ce qu'une servlet ?

Réponse : Une servlet est une classe du langage de programmation Java utilisée pour traiter les demandes des clients et créer du contenu Web dynamique. Les servlets sont principalement utilisés pour traiter ou stocker les données soumises par un formulaire HTML, fournir du contenu dynamique et gérer les informations d'état qui ne sont pas présentes dans HTTP sans état.

6. Qu'est-ce qu'une page JSP ?

Réponse : Java Server Page (JSP) est un document texte qui contient deux types de texte :
  • des données statiques,
  • Éléments JSP.
Les données statiques peuvent être exprimées dans n'importe quel format de texte, tel que HTML ou XML. JSP est une technologie qui mélange du contenu statique avec du contenu généré dynamiquement.

7. Que sont les directives ? Quels types de directives sont disponibles dans JSP ?

Réponse : Les directives sont des instructions qui sont traitées par le moteur JSP lorsque la page est compilée dans un servlet. Les directives sont utilisées pour définir des instructions au niveau de la page, insérer des données à partir de fichiers externes et spécifier des bibliothèques de balises personnalisées. Les directives sont définies entre <%@ et %>. Les différents types de directives sont présentés ci-dessous :
  • Directive Include : utilisée pour inclure un fichier et combiner le contenu du fichier avec la page actuelle.
  • Directive Page : elle est utilisée pour définir certains attributs sur une page JSP tels que la page d'erreur et le tampon.
  • Taglib : utilisé pour déclarer une taglib personnalisée utilisée sur la page.

8. Que font les méthodes System.gc() et Runtime.gc() ?

Réponse : Ces méthodes peuvent être utilisées comme indice pour la JVM pour déclencher le garbage collection. En règle générale, la machine virtuelle Java (JVM) exécute un garbage collection périodiquement ou lorsque la mémoire libre atteint des niveaux faibles.

9. Quelles différences y a-t-il entre HashMap et Hashtable ?

Réponse : Il existe plusieurs différences entre HashMap et Hashtable en Java :
  1. Hashtable est synchronisé alors que HashMap ne l'est pas. Cela rend HashMap meilleur pour les applications non threadées, car les objets non synchronisés fonctionnent généralement mieux que les objets synchronisés.
  2. Hashtable n'autorise pas les clés ou valeurs nulles. HashMap vous permet d'utiliser une clé nulle et n'importe quel nombre de valeurs nulles.
  3. L'une des sous-classes de HashMap est LinkedHashMap, donc si vous souhaitez un ordre d'itération prévisible (ordre d'insertion par défaut), vous pouvez facilement échanger HashMap contre LinkedHashMap. Ce ne serait pas si simple si vous utilisiez Hashtable.

10. Qu'est-ce que JDBC ?

Réponse : JDBC est une couche d'abstraction qui permet aux utilisateurs de choisir entre des bases de données. Avec JDBC, les développeurs peuvent écrire des applications de base de données en Java sans se soucier des détails d'une base de données particulière.

11. Que signifie le mot-clé « statique » ? Pouvez-vous remplacer une méthode privée ou statique en Java ?

Réponse : Le mot-clé static signifie qu'un membre variable ou une méthode est accessible sans nécessiter une instance de la classe à laquelle il appartient . L'utilisateur ne peut pas remplacer les méthodes statiques en Java, car le remplacement des méthodes est basé sur une liaison dynamique au moment de l'exécution et les méthodes statiques sont liées de manière permanente au moment de la compilation. Une méthode statique n’est associée à aucune instance de la classe, ce concept n’est donc pas applicable.

12. Quelle est l'importance d'un bloc final lors de la gestion des exceptions ?

Réponse : Un bloc final sera toujours exécuté, qu’une exception soit levée ou non. Même s'il n'y a pas d'instruction catch et qu'une exception se produit. Une dernière chose à mentionner est que le bloc final est utilisé pour libérer des ressources telles que les tampons d'E/S, les connexions à la base de données, etc.

13. Quelle est la différence entre une exception et une erreur en Java ?

Réponse : L'erreur est une condition critique qui ne peut pas être gérée par le code du programme. Une exception est une situation exceptionnelle qui peut être gérée par le code du programme.

14. Quand un objet devient-il éligible au garbage collection en Java ?

Réponse : Un objet Java est soumis au garbage collection lorsqu'il devient indisponible pour le programme qui l'utilise actuellement.

15. Qu'est-ce qu'un itérateur ?

Réponse : L' interface Iterator fournit un certain nombre de méthodes qui peuvent parcourir n'importe quelle collection . Chaque collection Java contient une méthode Iterator qui renvoie une instance Iterator . Les itérateurs peuvent supprimer des éléments de la collection sous-jacente pendant l'itération.

16. Qu'est-ce que le passage par référence et le passage par valeur ?

Répondre:
  • Lorsqu'un objet est passé par value , cela signifie qu'une copie de l'objet est passée. De cette façon, même si des modifications sont apportées à cet objet, cela n’affectera pas la valeur d’origine.
  • Lorsqu'un objet est passé par référence , cela signifie que l'objet n'est pas réellement passé, mais plutôt qu'une référence à l'objet est passée. De cette façon, toutes les modifications apportées par la méthode externe sont également reflétées partout.

17. Qu'est-ce qu'une applet Java ?

Réponse : Une applet Java est un programme qui peut être inclus dans une page HTML et exécuté dans un navigateur client compatible Java. Les applets sont utilisées pour créer des applications Web dynamiques et interactives.

18. Comment fonctionne HashMap en Java ?

Réponse : HashMap en Java stocke les paires clé-valeur. HashMap nécessite une fonction de hachage, utilise les méthodes hashCode et equals pour définir et récupérer des éléments vers et depuis la collection. Lorsque la méthode put est appelée , HashMap calcule la valeur de hachage de la clé et stocke la paire à l'index approprié dans la collection. Si la clé existe, sa valeur est mise à jour avec la nouvelle valeur. Certaines caractéristiques importantes de HashMap sont sa capacité, son facteur de charge et la variation de la taille du seuil.

19. Quelles sont les principales interfaces du Java Collections Framework ?

Réponse :  Java Collections Framework est un ensemble conçu d'interfaces et de classes qui prennent en charge les opérations sur les collections d'objets. Les principales interfaces trouvées dans Java Collections Framework sont :
  • Une collection représente un groupe d'objets, appelés éléments.
  • Un ensemble est une collection qui ne peut pas contenir d'éléments en double.
  • Une liste est une collection ordonnée qui peut contenir des éléments répétitifs.
  • Une carte est un objet qui mappe les clés aux valeurs et ne peut pas contenir de clés en double.

20. Quels types de données Java prend-il en charge ? Qu'est-ce que l'Autoboxing et le Unboxing ?

Réponse : Le langage de programmation Java prend en charge les huit types de données primitifs suivants :
  • octet
  • court
  • int
  • long
  • flotter
  • double
  • booléen
  • carboniser
L'autoboxing est une conversion automatique effectuée par le compilateur Java entre les types primitifs et leurs classes wrapper d'objet correspondantes. Si la transformation va dans le sens inverse, cette opération est appelée Unboxing . Merci d'avoir lu et bonne chance pour votre entretien technique !

Avantages de connaître plusieurs langages de programmation

Source : Dev.to Personnellement, je suis convaincu que chaque développeur doit connaître plus d'un langage de programmation. Autrement dit, si l’on parle de langages de programmation, le développeur doit être polyglotte.Pause café #58.  20 questions d'entretien importantes qu'un développeur Java devrait connaître.  Avantages de connaître plusieurs langages de programmation - 2

Langues primaires et secondaires

Pour faciliter les choses, permettez-moi de clarifier certains des termes utilisés dans cet article. Je pense que chaque développeur devrait avoir un langage qu'il préfère. J'appelle cette langue la langue principale. J'appellerai auxiliaires toutes les langues autres que la principale. Bien entendu, un développeur peut changer de langue principale (plus d’une fois) tout au long de sa carrière. C'est bon. Il y a plusieurs raisons pour lesquelles cela s’explique.

Expert

Dans les discussions sur les développeurs polyglottes, l’argument est souvent avancé selon lequel la connaissance d’une deuxième langue par le développeur se fait au prix d’une moins bonne maîtrise de sa langue principale. Les partisans de cette idée supposent que l’apprentissage de chaque nouvelle langue prend du temps, et que ce temps, vous ne pouvez plus le consacrer à l’acquisition de la connaissance de votre langue principale. Cette façon de penser me semble erronée. Je vois une autre analogie : le sport. On sait que pratiquer un sport améliore vos performances dans un autre. Bien sûr, vous pouvez remporter des médailles d’or dans les deux épreuves, et il est peu probable que les fléchettes fassent de vous un meilleur nageur. En revanche, si vous êtes grimpeur, le yoga vous aidera à développer votre flexibilité et votre équilibre. Ainsi, la pratique du yoga fera de vous un meilleur grimpeur que vous ne le seriez sans. Je pense qu'apprendre chaque langue supplémentaire améliorera souvent vos compétences dans les autres langues que vous connaissez également.

Une gamme d'outils plus large

De plus, connaître plusieurs langages de programmation améliore considérablement votre arsenal en tant que développeur. Cela élargit vos horizons et vous permet de regarder certaines choses sous différents angles. Prenons un exemple de la vie quotidienne. Si vous avez déjà utilisé un tournevis, vous connaissez les vis à tête cruciforme. À première vue, toutes les vis cruciformes sont identiques et il semble qu'elles puissent toutes être serrées avec un seul tournevis. Oui, il arrive qu'il vous soit difficile de serrer ou de dévisser certaines vis, mais en général un tournevis vous suffit. Pause café #58.  20 questions d'entretien importantes qu'un développeur Java devrait connaître.  Avantages de connaître plusieurs langages de programmation - 3Mais un jour, vous entrez dans un magasin d’outillage, regardez tous ces magnifiques tournevis et découvrez qu’il existe différents types de tournevis cruciformes. Vous voyez que le tournevis que vous possédez déjà est un Phillips (PH) et décidez d'acheter sa sœur jumelle, la Pozidriv (PZ). Et puis, il s'avère soudain que pour certaines vis, l'une est mieux adaptée et pour d'autres, une autre. Ils se ressemblent, mais ils ne sont pas interchangeables . (Si vous vous demandez ce que signifient les lettres PH et PZ sur vos tournevis, vous le savez maintenant). Avec plus de connaissances et un outil supplémentaire, vous serez en mesure de faire un meilleur travail la prochaine fois que vous aurez besoin de serrer une vis à tête Phillips. Il en va de même pour les langages de programmation.

Vous n'avez pas besoin de payer pour des connaissances supplémentaires

Donc, personnellement, je ne vois pas l’intérêt d’apprendre un langage de programmation supplémentaire. Serez-vous également excellent dans les deux langues ? Probablement pas, mais il est peu probable que ce soit votre objectif. Apprenez-vous quelque chose de nouveau sur votre langue principale ? J'en suis absolument sûr. Connaître une nouvelle langue révélera les différences entre eux. Et cela, à son tour, éveillera votre curiosité. Vous vous demanderez pourquoi les choses se font différemment dans une nouvelle langue et ce qu'elles font. En conclusion, je vais donner un exemple tiré de la vie. J'ai utilisé un outil de ligne de commande écrit en Python. Chaque fois que j'installais cet outil sur une nouvelle machine, des problèmes survenaient et à chaque mise à jour, le nombre de problèmes augmentait. Si vous avez Go dans votre boîte à outils, vous remarquerez immédiatement son avantage dans ce scénario. Go vous permet de compiler ses artefacts dans un binaire autonome. Vous pouvez être sûr qu'une fois compilé, le binaire fonctionnera sur chaque machine pour laquelle vous l'avez compilé. J'ai donc porté la CLI Python sur Go. Avec cette nouvelle version, je n'ai plus eu à me soucier de modifier le runtime ou les dépendances tierces. C'est un excellent exemple de choix de l'outil le plus approprié pour la tâche. Et pour pouvoir choisir, il faut devenir développeur polyglotte.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION