Maison  >  Article  >  Java  >  Questions d'entretien Java classiques_Doit demander aux stagiaires !

Questions d'entretien Java classiques_Doit demander aux stagiaires !

(*-*)浩
(*-*)浩original
2019-11-08 16:02:032912parcourir

Questions d'entretien Java classiques à poser pour les stagiaires !

Questions d'entretien Java classiques_Doit demander aux stagiaires !

Tout d'abord, parlons de la différence entre final, enfin et finaliser.

modificateur final ? (mot clé) Si une classe est déclarée finale, cela signifie qu'elle ne peut plus dériver de nouvelles sous-classes et ne peut pas être héritée en tant que classe parent. Une classe ne peut donc pas être déclarée à la fois abstraite et finale. Déclarez les variables ou les méthodes comme finales pour vous assurer qu'elles ne seront pas modifiées pendant l'utilisation. Les variables déclarées comme finales doivent recevoir une valeur initiale lors de leur déclaration, et ne peuvent être lues que dans les références ultérieures et ne peuvent pas être modifiées. Les méthodes déclarées comme finales ne peuvent également être utilisées que et ne peuvent pas être surchargées.

finally ? Fournir un bloc final pour effectuer des opérations de nettoyage lors de la gestion des exceptions. Si une exception est levée, la clause catch correspondante est exécutée et le contrôle passe au bloc final (s'il y en a un).

finaliser le nom de la méthode. La technologie Java permet d'utiliser la méthode finalize() pour effectuer le nettoyage nécessaire avant que le garbage collector n'efface l'objet de la mémoire. Cette méthode est appelée par le garbage collector sur cet objet lorsqu'il détermine que l'objet n'est pas référencé. Il est défini dans la classe Object, donc toutes les classes en héritent. Les sous-classes remplacent la méthode finalize() pour organiser les ressources système ou effectuer d'autres travaux de nettoyage. La méthode finalize() est appelée sur l'objet avant que le garbage collector ne le supprime.

Deuxièmement, la différence entre HashMap et Hashtable.

appartiennent tous aux classes d'interface Map, qui implémentent le mappage de clés uniques à des valeurs spécifiques.

La classe HashMap ne classe ni ne trie. Il autorise une clé nulle et plusieurs valeurs nulles.

Hashtable est similaire à HashMap, mais n'autorise pas les clés nulles et les valeurs nulles. Il est également plus lent que HashMap car il est synchrone.

Troisièmement, String s = new String("xyz"); Combien d'objets String sont créés ?

Deux objets, l'un est "xyx" et l'autre est l'objet de référence pointe vers "xyx".

Quatrièmement, quelle est la différence entre sleep() et wait() ? Le favori de Threading

La méthode sleep() est une méthode pour arrêter le thread pendant un certain temps. du temps. Une fois l’intervalle de veille expiré, le thread ne reprend pas nécessairement son exécution immédiatement. En effet, à ce moment-là, d'autres threads peuvent être en cours d'exécution et ne sont pas programmés pour abandonner l'exécution, à moins que (a) le thread "de réveil" ait une priorité plus élevée.

(b) Le thread en cours d'exécution est bloqué pour d'autres raisons.

wait() est le moment où les threads interagissent. Si le thread émet un appel wait() à un objet de synchronisation x, le thread suspendra l'exécution et l'objet appelé entrera dans l'état d'attente jusqu'à ce qu'il soit réveillé ou en attente. le temps expire.

Cinquièmement, qu'est-ce qui ne va pas avec court s1 = 1 ; s1 = s1 + 1 ; court s1 += 1 ; Qu'est-ce qui ne va pas ? s1 = 1 ; s1 = s1 + 1 ; est faux, s1 est de type short, s1+1 est de type int et ne peut pas être converti explicitement en type court. Il peut être modifié comme s1 =(short)(s1 + 1). court s1 = 1 ; s1 += 1 est correct.

Sixièmement, la différence entre Overload et Override. Les méthodes surchargées peuvent-elles changer le type de valeur de retour ?

Le remplacement et la surcharge des méthodes sont différentes manifestations du polymorphisme Java. La substitution est une manifestation du polymorphisme entre les classes parentes et les sous-classes, et la surcharge est une manifestation du polymorphisme dans une classe.

Si une méthode définie dans une sous-classe a le même nom et les mêmes paramètres que sa classe parent, on dit que la méthode est prioritaire. Lorsqu'un objet d'une sous-classe utilise cette méthode, il appellera la définition de la sous-classe. Pour cela, la définition de la classe parent semble être "protégée".

Si plusieurs méthodes portant le même nom sont définies dans une classe et qu'elles ont un nombre différent de paramètres ou des types de paramètres différents, cela s'appelle une surcharge de méthode. Une méthode surchargée peut modifier le type de valeur de retour.

Septièmement, quelle est la différence entre une erreur et une exception ?

L'erreur représente un problème sérieux dans une situation où la récupération n'est pas impossible mais difficile. Par exemple, débordement de mémoire. Il est impossible d’attendre d’un programme qu’il gère une telle situation.

l'exception représente un problème de conception ou de mise en œuvre. Autrement dit, cela représente une situation qui ne se produirait jamais si le programme fonctionnait normalement.

Huitièmement, donnez-moi une exception d'exécution que vous voyez le plus souvent.

ArithmeticException, ArrayStoreException, 
BufferOverflowException, BufferUnderflowException, 
CannotRedoException, CannotUndoException, 
ClassCastException, CMMException, 
ConcurrentModificationException, DOMException, 
EmptyStackException, IllegalArgumentException, 
IllegalMonitorStateException, IllegalPathStateException, 
IllegalStateException, ImagingOpException, 
IndexOutOfBoundsException, MissingResourceException, 
NegativeArraySizeException, NoSuchElementException, 
NullPointerException, ProfileDataException, 
ProviderException, RasterFormatException, SecurityException, 
SystemException, UndeclaredThrowableException, 
UnmodifiableSetException, UnsupportedOperationException
Neuvièmement, les éléments de Set ne peuvent pas être répétés, alors quelle méthode est utilisée pour distinguer la répétition ? 🎜>

Les éléments de Set ne peuvent pas être répétés, utilisez donc la méthode iterator() pour distinguer s'ils sont répétés ou non. equals() détermine si deux ensembles sont égaux. Les méthodes equals() et == déterminent si la valeur de référence pointe vers le même objet. equals() est remplacée dans la classe afin de renvoyer une valeur vraie lorsque le contenu et les types des deux objets séparés. correspondre.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn