Dernières questions d'entretien sur les connaissances de base de Java
1. Que signifie le mot-clé statique ? Est-il possible de remplacer une méthode privée ou statique en Java ?
"statique" indique qu'une variable membre ou une méthode membre est accessible sans variable d'instance de la classe à laquelle elle appartient.
Les méthodes statiques en Java ne peuvent pas être remplacées car les remplacements de méthodes sont basés sur une liaison dynamique au moment de l'exécution, tandis que les méthodes statiques sont liées statiquement au moment de la compilation. Les méthodes statiques ne sont associées à aucune instance de la classe.
Les méthodes privées ne peuvent pas être remplacées en Java. Étant donné que les variables et méthodes modifiées par private ne peuvent être utilisées que dans la classe actuelle, si d'autres classes héritent de la classe actuelle, les variables et méthodes privées ne sont pas accessibles dans la classe héritée
2. être utilisé en statique Accéder aux variables non statiques dans l'environnement ?
Non. Les variables statiques appartiennent à des classes. Lorsqu'une classe est chargée par la machine virtuelle, les variables statiques sont initialisées. Les variables non statiques appartiennent aux instances. Pour le moment, l'instance n'a pas été créée et le compilateur signalera une erreur
3. Types de base Java, qu'est-ce que le déballage automatique ?
Types de base : byte, short, int, float, long, double, boolean, char
Autoboxing : C'est le compilateur java qui encapsule les types de base et les types d'objets correspondants Make une conversion entre eux. Par exemple, convertissez int en Integer, etc. Au contraire, il s'agit d'un déballage automatique
4. Que signifient le remplacement de méthode Java et la surcharge de méthode ?
La surcharge de méthodes en Java se produit lorsqu'il existe deux méthodes ou plus portant le même nom mais des paramètres différents dans la même classe. La substitution de méthode est une méthode permettant à une sous-classe de redéfinir une classe parent. Les remplacements de méthode doivent avoir le même nom de méthode, la même liste de paramètres et le même type de retour
5. Qu'est-ce qu'une méthode constructeur en Java ? Qu’est-ce que la surcharge du constructeur ? Qu’est-ce qu’un constructeur de copie ?
Lorsqu'un nouvel objet est créé, le constructeur est appelé. Chaque classe a un constructeur. Lorsqu'aucun constructeur n'est fourni pour la classe, le compilateur créera automatiquement un constructeur par défaut.
La surcharge de constructeur en Java est très similaire à la surcharge de méthode. Plusieurs constructeurs peuvent être créés pour une classe, et chaque constructeur doit avoir sa propre liste de paramètres unique
6. Java prend-il en charge l'héritage multiple ?
Non pris en charge. Seul l'héritage unique est pris en charge, c'est-à-dire qu'une classe n'a qu'une seule classe parent. Les implémentations peuvent être utilisées pour implémenter plusieurs extensions d'interface
7. La différence entre les interfaces et les classes abstraites
1. Toutes les méthodes de l'interface sont implicitement abstraites. Une classe abstraite peut contenir à la fois des méthodes abstraites et non abstraites
2. Les variables déclarées dans l'interface sont finales par défaut, tandis que la classe abstraite peut contenir des variables non finales
3. les fonctions membres de l’interface sont publiques par défaut. Les fonctions membres d'une classe abstraite peuvent être privées, protégées ou publiques
4. La classe n'a pas besoin d'implémenter toutes les méthodes de la classe abstraite et de la déclaration d'interface. Dans ce cas, la classe doit également être déclarée. résumé
8. Quelle est la différence entre jdk et jre ?
L'environnement d'exécution Java (jre) est la machine virtuelle Java permettant au programme Java d'être exécuté. Il contient également les plug-ins du navigateur nécessaires à l'exécution de l'applet. Le kit de développement Java (jdk) est un package complet de développement de logiciels Java, comprenant jre, un compilateur et d'autres outils (tels que javadoc, java debugger), qui permet aux développeurs de développer, compiler et exécuter des applications java
9. Qu'est-ce que le transfert de valeur et le transfert de référence
Le transfert de valeur concerne les variables de type de base. Le transfert est une copie de la variable. La modification de la copie n'affectera pas la variable d'origine
Le passage de référence concerne généralement les variables de type objet. Ce qui est transmis est une copie de l'adresse de l'objet. La modification de la copie affectera la variable d'origine10. fil de discussion?
Un processus est une application en cours d'exécution et un thread est une séquence d'exécution au sein d'un processus. Un processus peut avoir plusieurs threads Différences : 1. Espace d'adressage et autres ressources : Les processus sont indépendants les uns des autres. Partagé entre les threads du même processus. Les threads d'un processus ne sont pas visibles dans les autres processus2. Communication : communication IPC entre les processus, les threads peuvent directement lire et écrire des segments de données de processus (tels que des variables globales) pour communiquer - l'assistance de la synchronisation des processus et de l'exclusion mutuelle est nécessaire pour garantir la cohérence des données 3. Planification et commutation : La commutation de contexte entre les threads est beaucoup plus rapide que la commutation de contexte de processus4 Dans un système d'exploitation multithread, le processus n'est pas une entité exécutable11. et blocs de code synchronisés
Les méthodes synchronisées utilisent cet objet de classe ou l'objet de classe actuel comme verrou par défaut Les blocs de code synchronisés peuvent choisir ce qu'il faut verrouiller, ce qui est plus détaillé que la granularité des méthodes synchronisées . Nous pouvons choisir de synchroniser uniquement la partie du code qui posera des problèmes de synchronisation au lieu de la méthode entière12. Deadlock
Le blocage est causé par plusieurs threads en raison de concurrence pour les ressources. Une sorte d’impasse dans laquelle aucun de ces fils ne peut avancer sans force extérieure. 4 conditions nécessaires à l'impasse1. Condition d'exclusion mutuelle2. Condition de non-privation3. Conditions de demande et de retenue4. boucle13. Comment s'assurer que N threads peuvent accéder à N ressources sans provoquer de blocage ?
Un moyen très simple d'éviter les blocages : spécifiez l'ordre dans lequel les verrous sont acquis et forcez les threads à acquérir les verrous dans l'ordre spécifié. Par conséquent, si tous les threads se verrouillent et libèrent les verrous dans le même ordre, il n'y aura pas de blocage
14. Quelles sont les interfaces de base du framework de classe de collection Java ?
Collection, Set, List, Map
15. Comment fonctionne HashMap
HashMap est stocké sous forme de paires clé-valeur. . Hashmap nécessite une fonction de hachage, qui utilise les méthodes hashCode et equals pour ajouter et récupérer des éléments vers/depuis la collection. Lorsque put est appelé, HashMap calcule la valeur de hachage de la clé et stocke la paire clé-valeur à l'index approprié dans la collection. Si la clé existe déjà, la valeur sera mise à jour avec la nouvelle valeur. Certaines caractéristiques importantes de hashMap sont sa capacité, son facteur de charge et sa limite d'expansion
16 Où se reflète l'importance du hashcode et des égaux
hashmap passe le hashcode et les égaux Déterminer ? l'index de la paire clé-valeur
17. Quelle est la différence entre hashmap et hashtable ?
hashmap permet aux clés et aux valeurs d'être nulles, la table de hachage ne permet pas aux clés ou aux valeurs d'être nulles
hashtable est synchronisée, mais hashmap ne l'est pas
Site Web chinois php, de nombreux tutoriels d'introduction à Java gratuits, bienvenue pour apprendre en ligne !
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!