Questions d'interview de base Java classiques, bienvenue pour collecter et partager.
Question: Que se passe-t-il si la méthode principale est déclarée privée?
Réponse: Il peut compiler normalement, mais il incitera "la méthode principale n'est pas publique" lors de l'exécution.
Question: Quelle est la différence entre la référence de passage et la valeur de passage en Java?
Réponse: passer une référence signifie passer une adresse plutôt que la valeur elle-même, et passer une valeur est une copie de la valeur.
Question: Si vous souhaitez réécrire la méthode égale d'un objet, que devez-vous considérer d'autre?
Réponse: HashCode.
Question: Comment "Écrire une fois, exécuter partout" de Java est-elle mise en œuvre?
Réponse: Les programmes Java seront compilés dans un fichier de classe composé de bytecodes, qui peut fonctionner sur n'importe quelle plate-forme, donc Java est indépendant de la plate-forme.
Question: Expliquez le rôle de chaque mot-clé dans la déclaration du public static void Main (String args [])
Réponse: Le public: La méthode principale est la première méthode appelée lorsqu'un programme Java fonctionne, il doit donc être visible pour l'environnement Java. La visibilité est donc définie sur Pulic.
Statique: la plate-forme Java ne créera pas une instance de cette classe lors de l'appel de cette méthode, cette méthode doit donc être déclarée statique.
void: la méthode principale n'a aucune valeur de retour.
La chaîne est le type de paramètre passé dans la ligne de commande, et Args fait référence à un tableau de chaînes passées dans la ligne de commande.
Question: == Différence par rapport aux égaux
Réponse: == Comparez si deux objets sont le même objet en mémoire, ce qui signifie que les emplacements de stockage en mémoire sont les mêmes. Les valeurs stockées par les deux objets de chaîne sont les mêmes, mais elles peuvent être stockées à différents endroits en mémoire.
== La comparaison est la référence, tandis que la méthode égale compare le contenu. Le booléen public est égal (objet obj) Cette méthode est fournie par un objet d'objet et peut être réécrite par sous-classes. L'implémentation par défaut ne renvoie pas vrai uniquement lorsque l'objet est comparé à lui-même, et pour le moment il est équivalent à ==. String, BitsEt, Date et File Tous remplacent la méthode égaux. Pour deux objets de chaîne, les valeurs égales signifie qu'elles contiennent la même séquence de caractères. Pour une classe de wrapper avec un type de base, les valeurs égales signifie que les valeurs du type de base correspondantes sont les mêmes.
classe publique EqualSTest {public static void main (String [] args) {String S1 = "ABC"; String S2 = S1; String S5 = "ABC"; String s3 = new String ("ABC"); String s4 = new String ("ABC"); System.out.println ("== Comparaison:" + (S1 == S5)); System.out.println ("== Comparaison:" + (S1 == S2)); System.out.println ("Utilisation de la méthode égaux:" + s1.equals (s2)); System.out.println ("== Comparaison:" + S3 == S4); System.out.println ("Utilisation de la méthode égal:" + S3.Equals (S4)); }}résultat:
== Comparaison: vrai
== Comparaison: vrai
Utilisation de la méthode égaux: vrai
FAUX
Utilisation de la méthode égaux: vrai
Question: Que se passe-t-il si le modificateur statique de la méthode principale est supprimé?
Réponse: Le programme peut compiler normalement. Une exception NosuchMethoDerror sera lancée pendant l'exécution.
Question: Pourquoi le pilote Oracle Type4 est-il appelé un pilote mince?
Réponse: Oracle fournit un pilote JDBC de type 4, appelé pilote mince. Ce pilote contient une implémentation de TCP / IP Net8 dans Oracle qui est pleinement implémentée dans Java. Par conséquent, il est indépendant de la plate-forme et peut être téléchargé par le navigateur lors de l'exécution et ne s'appuie pas sur la mise en œuvre d'Oracle d'un client. La chaîne de connexion client utilise le port d'adresse TCP / IP, pas le nom TNSN du nom de la base de données.
Question: Permettez-moi d'introduire la méthode finalisée
Réponse: Final: Déclaration constante. Enfin: gérer les exceptions. Finalisez: aide à la collecte des ordures.
Les variables déclarées dans l'interface sont finales par défaut. La classe finale ne peut pas être héritée, ce qui signifie qu'il n'y a pas de sous-classes. Cela est fait pour les types de base de raisons de sécurité, tels que la chaîne et le nombre. Cela permet également au compilateur de faire des optimisations et facilite l'assurer la sécurité des threads. La méthode finale ne peut pas être réécrite. La valeur de la variable finale ne peut pas être modifiée. La méthode finalisée () sera appelée avant qu'un objet ne soit détruit et recyclé. Enfin, il est généralement utilisé pour la gestion des exceptions, que ce soit ou non une exception, elle sera exécutée. Par exemple, la fermeture de la connexion est généralement effectuée dans un bloc final.
Question: Quelle est l'API Java?
Réponse: Java API est une collection d'un grand nombre de composants logiciels qui offrent de nombreuses fonctionnalités utiles, telles que les composants GUI.
Question: Quelle est la classe GregorianCalendar?
Réponse: Gregoriancalendar fournit un soutien aux calendriers occidentaux traditionnels.
Question: Quelle est la classe ResourceBundle?
Réponse: ResourceBundle est utilisé pour stocker des ressources dans un lieu spécifié. Les applications peuvent charger ces ressources en fonction du lieu d'exécution, fournissant ainsi l'affichage de différentes langues.
Question: Pourquoi n'y a-t-il pas de variables globales en Java?
Réponse: Les variables globales sont globalement visibles, et Java ne prend pas en charge les variables mondialement visibles car: les variables globales détruisent le principe de transparence de référence. Les variables globales provoquent des conflits d'espace de noms.
Question: Comment convertir le type de chaîne en type de numéro?
Réponse: La méthode de valeur de la classe entière peut convertir une chaîne en un nombre. Voici un exemple de code:
String numString = "1000";
int id = Integer.ValueOf (numString) .IntValue ();
Question: Quelle est la classe SimpletimeZone?
Réponse: SimpletimeZone fournit une prise en charge de la date grégorienne.
Question: Quelle est la différence entre une boucle de temps et une boucle à faire?
Réponse: La structure While détermine si la prochaine itération doit se poursuivre au début de la boucle. La structure DO / While détermine si la prochaine itération se poursuivra à la fin de la boucle. La structure DO exécutera le corps de la boucle au moins une fois.
Question: Quelle est la classe régionale?
Réponse: La classe des paramètres régionaux est utilisée pour ajuster dynamiquement la sortie du programme en fonction de l'environnement régional.
Question: Quels sont les principes de la programmation orientée objet?
Réponse: Il y a trois points principaux: le polymorphisme, l'héritage et l'encapsulation.
Question: Introduction aux principes de l'héritage
Réponse: L'héritage permet à un objet d'obtenir les propriétés d'un autre objet. L'utilisation de l'héritage permet de réutiliser les fonctions testées et peut être modifiée en même temps, et tous les lieux d'héritage prennent effet en même temps.
Question: Qu'est-ce que la conversion de type implicite?
Réponse: La conversion de type implicite consiste simplement à attribuer un type à un autre type, sans dire explicitement au compilateur que la conversion s'est produite. Tous les types ne prennent pas en charge la conversion de type implicite.
Exemple de code:
int i = 1000;
long j = i; // casting implicite
Question: La taille d'un mot-clé en Java est-elle?
Réponse: Non.
Question: Quelle est la méthode native?
Réponse: La méthode native est une méthode d'implémentation de code non java.
Question: Dans System.out.println (), que sont System, Out et Println?
Réponse: Le système est une classe finale prédéfinie fournie par le système. Out est un objet PrintStream, et println est une méthode surchargée dans l'objet Out.
Question: Que sont l'encapsulation, l'héritage et le polymorphisme?
Réponse: En termes simples, le polymorphisme fait référence à plusieurs implémentations d'un seul nom. Le polymorphisme permet à une entité de mettre en œuvre différentes opérations de manière courante. L'opération spécifique est déterminée par implémentation réelle.
Il existe trois façons de manifester le polymorphisme en Java: la surcharge de méthode est implémentée par l'héritage et la réécriture de la méthode via l'interface Java.
Question: Qu'est-ce qu'une conversion de type explicite?
Réponse: La conversion de type explicite indique explicitement au compilateur de convertir des objets.
Exemple de code:
long i = 700,20;
int j = (int) i; // Casting explicite
Question: Qu'est-ce qu'une machine virtuelle Java?
Réponse: Les machines virtuelles Java sont des systèmes logiciels qui peuvent être portés sur différentes plates-formes matérielles.
Question: Qu'est-ce que le type de conversion des bas?
Réponse: La conversion vers le bas fait référence à la conversion d'un type commun en un type spécifique, qui est effectué vers le bas sur la structure d'héritage.
Question: Quel est le modificateur d'accès pour Java?
Réponse: Le modificateur d'accès est un mot-clé qui indique le type d'accès d'un membre de la classe. Utilisez ces mots clés pour définir l'accès aux méthodes ou variables pour les programmes. Ils contiennent:
Public: Toutes les classes peuvent accéder à la protection: toutes les sous-classes peuvent accéder à Private: seules les classes attribuées peuvent accéder par défaut: les classes et sous-classes attribuées dans le même package peuvent accéder
Question: Quelles sont les classes parentales de toutes les classes?
Réponse: Objet.
Question: Quels sont les types de base de Java?
Réponse: octet, char, court, int, long, flotteur, double, booléen.
Question: Quelles sont les caractéristiques des types statiques?
Réponse: Les variables statiques sont liées à la classe, et non aux objets d'instance de la classe. Chaque objet d'instance partage la même variable statique. C'est-à-dire qu'une classe n'a qu'une seule variable statique, peu importe le nombre d'objets qu'il dispose. Les variables de classe ou les variables statiques sont déclarées via le mot-clé statique. Les variables de classe sont généralement utilisées comme constantes. Les variables statiques sont généralement accessibles par les noms de classe. Lorsque le programme est en cours d'exécution, cette variable sera créée jusqu'à la fin du programme et ne sera pas détruite. La portée des variables de classe est la même que celle des variables d'instance. Sa valeur initiale est la même que les variables membre. Lorsque la variable n'est pas initialisée, il y aura une valeur par défaut en fonction de son type de données. De même, les méthodes statiques sont des méthodes qui appartiennent aux classes, et non aux objets de classe. Leurs appels n'agissent pas sur les objets de classe et ils n'ont pas besoin de créer des instances de classe. Les méthodes statiques elles-mêmes sont finales, car la réécriture ne se produira que sur les instances de classe. Les méthodes statiques sont liées à la classe, pas aux objets. Les méthodes statiques de la classe parent seront bloquées par les méthodes statiques de la classe enfant, tant que la méthode d'origine n'est pas déclarée finale. Les méthodes non statiques ne peuvent pas remplacer les méthodes statiques, c'est-à-dire que vous ne pouvez pas changer une méthode statique en une méthode d'instance dans une sous-classe.
Les variables non statiques ont une copie distincte de la valeur sur chaque instance d'objet.
Question: Quelle est la différence entre l'opérateur et l'opérateur &&?
Réponse: Lorsqu'une & expression est évaluée, les deux opérandes seront évalués et && ressemble plus à un raccourci vers un opérateur. Lorsque l'expression d'une && évalue, le premier opérande est calculé en premier, et s'il renvoie vrai, le deuxième opérande sera calculé. Si le premier opérande est considéré comme faux, le deuxième opérande ne sera pas évalué.
Question: Comment Java gère-t-il le débordement et le sous-plein des entiers?
Réponse: Java stocke les octets d'ordre de bas niveau correspondant dans le résultat du calcul dans la valeur correspondante en fonction de la taille du type.
Question: Que se passe-t-il si le vide statique public est écrit comme un vide public statique?
Réponse: Le programme est compilé et s'exécute normalement.
Question, quelle est la différence entre déclarer les variables et définir les variables?
Réponse: Déclarer les variables Nous ne fournissons que le type et le nom de la variable et ne l'initialisons pas. La définition comprend deux étapes: la chaîne de déclaration et d'initialisation S; Just Variable Declaration, String S = new String ("Bob"); ou chaîne s = "bob"; est une définition variable.
Question: Quel type de passage de paramètres prend en charge Java?
Réponse: Les paramètres Java sont tous des valeurs transmises. Pour un objet, la valeur passée est une référence à l'objet, c'est-à-dire la copie de la référence d'origine et la référence des paramètres pointent les deux vers le même objet.
Question: Quels sont les principes de l'encapsulation des objets?
Réponse: L'encapsulation consiste à lier les données et le code qui exploite les données à une unité distincte. Cela garantit la sécurité des données et empêche l'utilisation incorrecte du code externe. Les objets permettent aux programmes et aux données d'être encapsulés pour réduire les interférences potentielles. Une autre compréhension de l'encapsulation consiste à agir comme une couche protectrice pour les données et le code pour éviter un accès aléatoire au code en dehors de la couche protectrice.
Question: Comment comprenez-vous les variables?
Réponse: Une variable est une zone de mémoire nommée pour l'accès par le programme. Les variables sont utilisées pour stocker les données et à mesure que le programme est exécuté, les données stockées peuvent également changer.
Question: Qu'est-ce que l'amélioration numérique?
Réponse: L'amélioration numérique fait référence à la conversion des données d'un type de données plus petit à un type de données plus grand pour les opérations entières ou à points flottants. Au cours du processus d'augmentation numérique, l'octet, le char, les valeurs courtes seront converties en type int. En cas de besoin, le type int peut également être promu long. Long et Float peuvent être convertis en deux types.
Question: Quelle est la conversion de type de Java?
Réponse: La conversion d'un type de données en une autre est appelée conversion de type. Java a deux types de méthodes de conversion, l'une est une conversion de type explicite et l'autre est implicite.
Question: Quel est le premier paramètre du tableau de chaîne dans les paramètres de la méthode principale?
Réponse: Le tableau est vide, sans aucun éléments. Contrairement à C ou C ++, le premier élément est le nom du programme par défaut. Si la ligne de commande ne fournit aucun paramètre, le tableau de chaîne dans la méthode principale est vide, mais pas nul.
Question: Comment déterminer si un tableau est nul ou vide?
Réponse: La valeur de sortie de l'array.length. S'il est 0, le tableau est vide. S'il est nul, une exception de pointeur nul sera lancée.
Question: plusieurs classes peuvent-elles être autorisées à posséder en même temps et avoir des méthodes principales dans le programme?
Réponse: Oui. Lorsque le programme s'exécute, nous spécifierons le nom de classe en cours d'exécution. Le JVM ne recherchera que les méthodes principales de la classe que vous avez spécifiée. Par conséquent, il n'y a pas de conflit de dénomination entre plusieurs classes ayant des méthodes principales.
Question: Quand le chargement des variables statiques? Compiler ou l'exécution? Quel est le moment du chargement du bloc de code statique?
Réponse: Lorsque le chargeur de classe charge la classe dans le JVM, des variables statiques seront créées, ce qui n'a rien à voir avec la création de l'objet. L'espace mémoire sera alloué lorsque les variables statiques seront chargées. Le code du bloc de code statique ne sera exécuté qu'une fois que la classe sera initialisée pour la première fois. Une classe peut avoir plusieurs blocs de code statique, il n'est pas membre de la classe, n'a pas de valeur de retour et ne peut pas être appelé directement. Les blocs de code statique ne peuvent pas contenir ceci ou super, ils sont généralement initialisés avec des variables statiques.
Question: une classe peut-elle avoir plusieurs méthodes principales?
Réponse: Oui, mais une seule méthode principale a la signature suivante:
public static void main (String [] args) {}
Sinon, le programme ne sera pas compilé. Le compilateur vous avertira que la méthode principale existe déjà.
Question: Permettez-moi de présenter brièvement le fonctionnement de JVM?
Réponse: JVM est un ordinateur abstrait. Tout comme un vrai ordinateur, ils compileront d'abord le fichier .java dans un fichier .class (le fichier .class est le fichier bytecode), puis utilise son interprète pour charger le bytecode.
Question: Et si les valeurs de deux variables sont échangées en place?
Réponse: Ajoutez d'abord deux valeurs et attribuez des valeurs à la première variable, puis soustrayez la deuxième variable du résultat et attribuez des valeurs à la deuxième variable. Ensuite, soustrayez la deuxième variable avec la première variable et attribuez la valeur à la première variable en même temps. Le code est le suivant:
int a = 5, b = 10; a = a + b; b = ab; a = ab;
Utilisez XOR pour changer. La première méthode peut également provoquer un débordement. La méthode de XOR est la suivante: int a = 5, b = 10; a = a + b; b = ab; a = ab;
int a = 5; int b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;
Question: Qu'est-ce que l'encapsulation des données?
Réponse: Une façon d'encapsuler les données est de créer des méthodes SET et d'obtenir des méthodes dans la classe pour accéder aux variables de données de l'objet. De manière générale, les variables sont privées, tandis que les méthodes GET et SET sont publiques. L'encapsulation peut également être utilisée pour vérifier les données lors du stockage des données, ou pour calculer les données, ou pour les utiliser comme introspection (comme l'utilisation de javabeans dans les entretoises). L'encapsulation des données et des fonctions dans une structure distincte est appelée encapsulation de données. L'encapsulation encapsule en fait des données et des méthodes de fonctionnement associées dans une unité indépendante, de sorte que les données peuvent être accessibles en utilisant ces méthodes associées. L'encapsulation fournit la sécurité des données, qui est en fait un moyen de masquer les données.
Question: Quelle est l'API de réflexion? Comment est-il implémenté?
Réponse: La réflexion fait référence à la fonction de pouvoir afficher l'état et les caractéristiques d'une classe pendant l'exécution et de pouvoir effectuer une gestion dynamique. Ces fonctions sont fournies via certaines API de réflexion de classe intégrées, telles que la classe, la méthode, le champ, les constructeurs, etc. Exemple d'utilisation: utilisez la méthode GetName de l'API de réflexion Java pour obtenir le nom de classe.
Question: Le JVM lui-même maintiendra-t-il le cache? Est-il alloué des objets dans le tas, ou le tas du système d'exploitation ou le tas géré par le JVM lui-même? Pourquoi?
Réponse: Oui, le JVM lui-même gère le cache, qui crée des objets dans le tas, puis fait référence à ces objets dans la pile.
Question: Qu'est-ce que la mémoire virtuelle?
Réponse: La mémoire virtuelle est également appelée mémoire étendue, et il n'y a en fait pas de mémoire physique réelle.
Question: La méthode peut-elle être statique et synchronisée en même temps?
Réponse: Oui. Si vous faites cela, le JVM acquiert le verrou sur l'instance java.lang.classe associée à cet objet. Cela est égal à:
synchronisé (xyz.class) {
}
Question: Quelle est la différence entre String et StringTokenizer?
Réponse: StringTokenizer est une classe d'outils utilisée pour diviser les chaînes.
StringTokenizer st = new StringTokenizer ("Hello World"); tandis que (St.Hasmoretokens ()) {System.out.println (St.NextToken ());}
Sortir:
Bonjour
Monde
Question: Quelles sont les caractéristiques des variables transitoires?
Réponse: La variable transitoire ne sera pas sérialisée. Par exemple, lorsqu'une classe qui implémente l'interface sérialisable est sérialisée dans l'objetStream, les variables de type transitoire ne seront pas écrites dans le flux. Dans le même temps, lorsque vous désérialisée en arrière, la valeur variable correspondante est nul.
Question: Quels conteneurs utilisent la disposition des bordures comme disposition par défaut?
Réponse: fenêtre, cadre, boîte de dialogue.
Question: Comment comprendre ce qu'est la synchronisation?
Réponse: La synchronisation est utilisée pour contrôler l'accès des ressources partagées entre plusieurs threads pour s'assurer qu'un seul thread peut accéder à cette ressource en même temps. Dans un programme multi-thread protégé de manière asynchrone, lorsqu'un thread modifie une variable partagée, un autre thread peut également utiliser ou mettre à jour sa valeur. La synchronisation évite la génération de données sales.
Synchroniser les méthodes:
Méthode void synchronisée publique1 () {// Code approprié lié à la méthode.}Synchroniser les blocs de code à l'intérieur de la méthode:
public myFunction () {synchronisé (this) {// Code synchronisé ici. }}Ce qui précède est une compilation des informations sur les questions d'entrevue Java. Nous continuerons d'ajouter des informations pertinentes à l'avenir. Merci pour votre soutien à ce site!