Parlons d’abord de la différence entre final, enfin et finaliser.
final? modificateur (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.
enfin ? 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 ? nom de la méthode. La technologie Java permet d'utiliser la méthode finalize() pour effectuer le travail de 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.
Ce sont toutes des classes qui appartiennent à l'interface Map et implémentent le mappage de clés uniques à des valeurs spécifiques.
La classe HashMap ne trie 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 ?
Il y a deux objets, l'un est "xyx" et l'autre est l'objet de référence pointant 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 qui arrête 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 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.
Lorsque wait() est utilisé pour l'interaction du thread, 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 que le temps d'attente expire.
Cinquièmement, quel est le problème avec le court s1 = 1 ; s1 = s1 + 1 ; ?
short 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 modifier le type de valeur de retour ?
Le remplacement et la surcharge de 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 ? 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 une valeur de référence pointe vers le même objet. equals() est remplacé dans la classe pour renvoyer true lorsque le contenu et les types de 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 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 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 du Set 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 ? 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 une valeur de référence pointe vers le même objet. equals() est remplacé dans la classe pour renvoyer true lorsque le contenu et les types de deux objets distincts correspondent.