JavaRush /Blog Java /Random-FR /Questions Java délicates souvent posées lors des entretie...

Questions Java délicates souvent posées lors des entretiens

Publié dans le groupe Random-FR
Si vous vous êtes déjà préparé à un entretien pour le poste de programmeur Java ou passé un examen (pas nécessairement en programmation) pour obtenir un certificat, vous avez probablement déjà remarqué que les questions qu'ils posent sont très spécifiques. Beaucoup d'entre eux font réfléchir sur l'architecture du langage, certains sont conçus pour une connaissance approfondie. Il y a aussi ceux qui ressemblent davantage à des énigmes ou concernent des nuances très difficiles à ressentir sans pratique. Dans cet article, le développeur Saraans Singh propose plusieurs de ces questions Java. Avec des réponses, bien sûr. Questions Java délicates souvent posées lors des entretiens - 11. Que se passe-t-il si vous placez une instruction return ou System.exit() dans un bloc try/catch ? Il s'agit d'une question de « rattrapage » très populaire en Java. Le problème est que de nombreux programmeurs pensent que le bloc finallysera exécuté de toute façon. Cette question remet en question ce concept en plaçant une instruction returndans un bloc try/catchou en appelant depuis un bloc try/catchd'instructions System.exit (). La réponse à cette question délicate : le bloc finallysera exécuté lorsqu'une instruction est placée returndans un bloc try/catch, et ne sera pas exécuté lorsqu'il est appelé depuis un bloc try/catchd'instructions System.exit (). 2. Java prend-il en charge l’héritage multiple ? C'est une question très délicate. Les enquêteurs disent souvent : si C++ peut prendre en charge l'héritage multiple direct, pourquoi Java ne le peut-il pas ? La réponse est un peu plus compliquée qu'il n'y paraît, puisque Java prend en charge l'héritage de types multiples, car une interface qu'il contient peut étendre d'autres interfaces. Mais le langage Java ne prend pas en charge l’héritage multiple des implémentations. 3. Dans le cas où une méthode lève une exception NullPointerExceptiondans la classe parent, peut-elle être remplacée par la méthode qui lève RuntimeException? Une autre question délicate liée aux concepts de surcharge et de dépassement. Réponse : Vous pouvez lever en toute sécurité une exception de classe parent dans une méthode remplacée NullPointerException – RuntimeException, mais vous ne pouvez pas faire de même avec une exception vérifiée de type Exception. 4. Comment garantir que les threads peuvent accéder aux ressources sans blocage ? NN Si vous n’êtes pas très doué pour écrire du code multithread, cette question sera vraiment délicate pour vous. Cela peut être un défi même pour un programmeur expérimenté qui n’a pas fait face aux blocages et aux conditions de concurrence. L’astuce ici réside dans l’ordre : les blocages peuvent être évités en libérant les ressources dans l’ordre inverse de celui dans lequel elles ont été acquises. 5. Quelle est la différence entre les classes StringBufferet StringBuilderdans le langage Java ? Une question classique sur le langage Java, jugée délicate par certains développeurs et très simple par d'autres. La classe StringBuildera été introduite dans le JDK 1.5 et la seule différence entre elles est que les méthodes de la classe StringBuffer, par exemple, length()ou capacity(), append()sont synchronisées, alors que les méthodes correspondantes de la classe StringBuilderne le sont pas. En raison de cette différence fondamentale, la concaténation des chaînes StringBuilderest plus rapide avec StringBuffer. En fait, StringBufferson utilisation n'est pas recommandée, puisque dans 99% des cas d'utilisation, la concaténation des chaînes se fait sur le même thread. 6. Que renvoie l'expression 1.0/0.0 ? Est-ce que cela lèvera une exception ou provoquera une erreur de compilation ? Une autre question délicate sur la classe Double. Bien que les développeurs Java connaissent le type de données simple double et la classe Double, lorsqu'ils effectuent des opérations à virgule flottante, ils ne prêtent pas suffisamment attention à , Double.INFINITYet aux règles qui régissent les calculs arithmétiques qui leur sont associés. La réponse à cette question est simple : aucune exception ne sera levée, la valeur sera renvoyée . 7. Que se passe-t-il si vous essayez d'insérer un objet clé dans un objet clé qui existe déjà ? Cette question délicate fait partie d’une autre question fréquemment posée : comment fonctionnent-ils en Java ? est un sujet populaire pour les questions confuses et délicates sur le langage Java. La réponse est que si vous essayez de réinsérer une clé dans , elle remplacera l'ancienne car la classe n'autorise pas les clés en double. Et la même clé signifie le même code de hachage, donc il se retrouvera au même endroit dans le segment de hachage. Basé sur des matériaux de QuoraNaN-0.0ArithmeticExceptionDouble.INFINITYHashMapHashMapHashMapHashMapHashMap
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION