Maison  >  Article  >  Java  >  Dix questions d'entretien Java courantes partagées

Dix questions d'entretien Java courantes partagées

王林
王林avant
2020-10-12 17:54:252225parcourir

Dix questions d'entretien Java courantes partagées

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

(plus de recommandations de questions d'entretien : questions et réponses d'entretien Java)

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 final peuvent également être utilisées uniquement 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 pointe vers "xyx" Référence objet s.

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

La méthode sleep() est une méthode pour arrêter le thread pendant un certain 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 pas être 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 soit 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 le court s1 = 1 ; le court s1 = 1 ; qu'est-ce qui ne va pas ?

le court s1 = 1 ; s1 + 1 ; Faux, s1 est de type short, s1+1 est de type int et ne peut pas être explicitement converti en type short. Il peut être modifié comme s1 =(short)(s1 + 1). court s1 = 1 ; s1 += 1 est correct.

(Tutoriel recommandé : cours java )

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, on parle de surcharge de méthode. Une méthode surchargée peut modifier le type de valeur de retour.

Septièmement, les éléments de l'ensemble ne peuvent pas être répétés, alors quelle méthode est utilisée pour distinguer s'ils sont répétés ou non ? >

Définir Les éléments de 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 distincts correspondent.

Huitièmement, quelle est la différence entre une erreur et une exception.

L'erreur représente un problème sérieux lorsque 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 puisse gérer 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.

Neuviè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

Dixièmement, les éléments de l'ensemble ne peuvent pas être répétés, alors quelle méthode est utilisée pour distinguer s'ils sont répétés ? Est-ce == ou égal () ? Quelle est la différence entre eux ? 🎜> Les éléments du 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 distincts correspondent.

Recommandations associées : Tutoriel d'introduction à 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer