Voici 10 questions qui sont souvent posées lors des entretiens récents. Elles sont maintenant compilées et partagées à titre de référence.
Si vous n'êtes pas sûr de vous ou de vos compétences en Java, alors c'est une question très difficile. . Si vous êtes un expert Java, vous devez le maintenir à un niveau bas. Après cela, vous pourrez recevoir des questions en fonction du niveau auquel vous admettez. Ainsi, par exemple, si vous avez répondu 10 mais que vous ne pouviez pas répondre à une question assez difficile, ce serait un désavantage.
Honnêtement, il y a beaucoup de différences. Ici, si vous pouvez lister les plus importants, cela suffira. Vous devez expliquer les nouvelles fonctionnalités de Java 8. Pour une liste complète, visitez le site Web d'origine : Java 8 JDK.
La chose la plus importante que vous devez savoir est :
Les expressions Lambda, une nouvelle fonctionnalité du langage, ont été introduites dans cette version. Les expressions Lambda vous permettent de traiter les fonctions comme des paramètres de méthode ou le code comme des données. Les expressions Lambda vous permettent d'exprimer de manière plus compacte des instances d'interfaces à méthode unique (appelées interfaces fonctionnelles).
Les références de méthodes fournissent des expressions lambda faciles à lire pour les méthodes qui ont déjà des noms.
Les méthodes par défaut permettent d'ajouter de nouvelles fonctionnalités aux interfaces d'une bibliothèque et assurent la compatibilité binaire avec le code écrit pour les anciennes versions de ces interfaces.
Répéter les annotationsoffre la possibilité d'appliquer le même type d'annotation plusieurs fois à la même déclaration ou à la même utilisation de type.
Annotations de typeLes annotations de type offrent la possibilité d'appliquer des annotations partout où un type est utilisé, pas seulement dans les déclarations. Cette fonctionnalité prend en charge une vérification améliorée du type de code lorsqu’elle est utilisée avec un système de type enfichable. 3. Savez-vous quels sont les types de collections ?
ArrayList
LinkedList
HashMap
HashSet
Après cela, vous pourriez être confronté à des questions telles que quand devriez-vous utiliser ce type d'ensemble particulier, quels sont les avantages par rapport aux autres types, comment les données sont-elles stockées et comment les structures de données fonctionnent en coulisses.
Ici, la meilleure approche est d'en apprendre le plus possible sur ces types de collections, car la variété des questions est presque inépuisable.
4. De quelles méthodes dispose la classe Object ?La classe Object, qui appartient au package java.lang, se trouve en haut de l'arborescence des classes. Chaque classe est un descendant direct ou indirect de la classe d'objet. Chaque classe que vous utilisez ou écrivez hérite des méthodes d'instance d'un objet. Vous n'êtes pas obligé d'utiliser l'une de ces méthodes. Toutefois, si vous choisissez de le faire, vous devrez peut-être les remplacer par du code spécifique à la classe.
Les méthodes héritées de Object abordées dans cette section sont :
protected Object clone() throws CloneNotSupportedException
public boolean equals(Object obj)
protected void finalize() throws Throwable
public final Class getClass()
public int hashCode()
public String toString()
Il existe cinq méthodes :
public final void notify()
public final void notifyAll()
public final void wait()
public final void wait(long timeout)
public final void wait(long timeout, int nanos)
(Recommandations pour des questions d'entretien plus connexes :
questions et réponses d'entretien Java) 2. Si la chaîne n'est pas immuable, elle posera de sérieux problèmes à l'application. .menaces pour la sécurité. Par exemple, le nom d'utilisateur et le mot de passe de la base de données sont transmis sous forme de chaînes pour obtenir la connexion à la base de données, l'hôte de programmation du socket et les détails du port transmis sous forme de chaînes. Étant donné que String est immuable, sa valeur ne peut pas être modifiée. Sinon, tout pirate informatique pourrait modifier la valeur de référence, provoquant des problèmes de sécurité dans l'application.
3. Puisque String est immuable, il est sans danger pour le multithreading et une seule instance de chaîne peut être partagée entre différents threads. Pour la sécurité des threads, évitez d’utiliser la synchronisation ; les chaînes sont implicitement thread-safe.
4. Les chaînes sont utilisées dans les chargeurs de classes Java, et l'immuabilité garantit que la classe correcte est chargée par le chargeur de classes. Par exemple, considérons une instance dans laquelle vous essayez de charger java.sql. La classe de connexion est connectée, mais la valeur référencée est remplacée par myhacking. Classe de connexion, qui peut effectuer des opérations inutiles sur la base de données.
5. Étant donné que String est immuable, son hashcode sera mis en cache lors de sa création et n'aura pas besoin d'être calculé à nouveau. Cela en fait un bon candidat pour les clés dans une carte, et il est traité plus rapidement que les autres objets clés HashMap. C'est pourquoi String est l'objet le plus couramment utilisé pour les clés HashMap.
Cette question est ma préférée.
final Le mot-clé est utilisé dans plusieurs contextes pour définir une entité qui ne peut être allouée qu'une seule fois.
Java enfin le bloc est un bloc utilisé pour exécuter du code important, comme la fermeture de connexions, de flux, etc. Que l'exception soit gérée ou non, le bloc Java final est toujours exécuté. Le bloc Java suit enfin le bloc try ou catch.
Finalize est une méthode appelée par le GarbageCollector (garbage collector) avant de supprimer/détruire un objet éligible au garbage collection pour effectuer des activités de nettoyage.
Le problème du diamant reflète pourquoi l'héritage multiple n'est pas autorisé en Java. S'il existe deux classes qui ont une super classe partagée avec une méthode spécifique, elle sera remplacée dans les deux sous-classes. Ensuite, si vous décidez d'hériter de ces deux sous-classes, le langage n'a aucun moyen de décider quelle méthode vous souhaitez appeler si vous souhaitez l'appeler
Nous appelons ce problème Diamond question. Son nom vient de l’image ci-dessus, qui représente l’avertissement.
Je pense que c'est un problème assez difficile. Vous devez apporter quelques modifications à votre classe pour obtenir l'immuabilité :
1. Déclarez la classe comme finale afin qu'elle ne puisse pas être étendue.
2. Rendre tous les champs privés afin que l'accès direct ne soit pas autorisé.
3. Ne fournissez pas de méthodes de définition pour les variables
4. Rendre tous les champs de variables définitifs afin que leurs valeurs ne puissent être attribuées qu'une seule fois.
5. Initialisez tous les champs via le constructeur qui effectue une copie approfondie.
6. Effectuez le clonage d'objet dans la méthode getter pour renvoyer une copie au lieu de la référence réelle de l'objet.
Singleton est une classe qui ne permet de créer qu'une seule instance d'elle-même et donne accès à l'instance créée. Il contient des variables statiques qui peuvent contenir des instances uniques et privées d'elles-mêmes. Il peut être utilisé lorsque l'utilisateur souhaite limiter l'instanciation d'une classe à un seul objet. Ceci est souvent utile lorsqu'un seul objet est nécessaire pour coordonner les opérations entre les systèmes.
C'est la première question que vous devez savoir lorsque vous travaillez dans Java EE ou Spring. L'inversion de contrôle (IoC) est un principe de conception en programmation orientée objet qui peut être utilisé pour réduire le couplage entre les codes informatiques. La méthode la plus courante est appelée Dependency Injection (DI), et l'autre méthode est appelée "Dependency Lookup". Par inversion de contrôle, lorsqu'un objet est créé, une entité externe qui contrôle tous les objets du système lui transmet la référence de l'objet dont elle dépend. On peut aussi dire que des dépendances sont injectées dans l'objet.
Le composant n'effectue pas de requêtes de positionnement et fournit uniquement des méthodes Java ordinaires permettant au conteneur de déterminer les dépendances. Le conteneur est seul responsable de l'assemblage des composants. Il transmettra les objets qui répondent aux dépendances aux objets requis via les propriétés ou les constructeurs JavaBean. La pratique consistant à injecter des dépendances via les propriétés JavaBean est appelée Setter Injection ; la pratique consistant à transmettre des dépendances en tant que paramètres de constructeur est appelée Constructor Injection
Dans cet article, nous avons discuté du top 10 des interviews Java. questions qui, à mon avis, d'après mon expérience, sont les plus importantes aujourd'hui. Si vous savez cela, je pense que vous aurez un énorme avantage dans le processus de recrutement.
Si vous avez vécu des expériences similaires sur ce sujet, ou si vous avez des réussites, veuillez les partager dans les commentaires ci-dessous.
Recommandations associées : Tutoriel vidéo Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!