L'objet est la classe parent de toutes les classes, et toute classe hérite de l'objet par défaut. Quelles méthodes la classe d'objets implémente-t-elle?
1. Méthode de clone
Méthode de protection pour mettre en œuvre une copie peu profonde des objets. Cette méthode ne peut être appelée qu'en mettant en œuvre l'interface clonable, sinon une exception ClonenotsupportEdException sera lancée.
2. Méthode GetClass
Méthode finale, obtenez le type d'exécution.
3. Méthode Tostring
Cette méthode est utilisée plus fréquemment et a généralement remplacé les sous-classes.
4. Finaliser la méthode
Cette méthode est utilisée pour libérer des ressources. Parce qu'il est impossible de déterminer quand la méthode est appelée, elle est rarement utilisée.
5. Méthode égale
Cette méthode est une méthode très importante. Généralement égaux et == sont différents, mais dans l'objet, les deux sont les mêmes. Les sous-classes doivent généralement réécrire cette méthode.
6. Méthode de code de hash
Cette méthode est utilisée pour la recherche de hachage. Si la méthode équivalente est réécrite, la méthode HashCode est généralement réécrite. Cette méthode est utilisée dans certaines collections avec des fonctions de hachage.
Généralement, obj1.equals (obj2) == true doit être respecté. Obj1.hash-code () == obj2.hashcode () peut être introduit, mais l'égal de hashcode ne satisfait pas nécessairement égaux. Cependant, afin d'améliorer l'efficacité, les deux conditions ci-dessus doivent être maintenues à proximité de l'équivalent.
7. Méthode d'attente
La méthode d'attente consiste à faire en sorte que le fil actuel attende le verrou de l'objet. Le thread actuel doit être le propriétaire de l'objet, c'est-à-dire le verrouillage de l'objet. La méthode Wait () attend jusqu'à ce que le verrouillage soit obtenu ou est interrompu. Wait (longue durée) définit un intervalle de délai d'expiration et revient si aucun verrouillage n'est obtenu dans le délai spécifié.
Après avoir appelé cette méthode, le thread actuel s'endort jusqu'à ce que l'événement suivant se produise.
(1) D'autres threads appellent la méthode de notification de l'objet.
(2) D'autres threads appellent la méthode NotifyAll de l'objet.
(3) D'autres threads appellent l'interruption pour interrompre le thread.
(4) L'intervalle de temps est arrivé.
Pour le moment, le fil peut être planifié. S'il est interrompu, une exception interrompue sera lancée.
8. Méthode de notification
Cette méthode réveille un fil en attente de l'objet.
9. Méthode notifyall
Cette méthode réveille tous les threads en attente de l'objet.
-Objet-
ClassObjective Theroot pour la classification Archy.
-Explication-
La classe d'objets est la classe parent héritée par tous les objets de Java, et même un tableau hérite de la classe parent (il peut être compris comme la classe originale, l'ancêtre de toutes les classes. Vous pouvez demander: la première classe est-elle écrite par James un objet?).
Toutes les classes héritent implicitement de la classe d'objets, donc elles ne peuvent pas être vues.
-Objet-
Constructeur par défaut
-cloner-
―Equals (
Indique où lesomootherobjecttis "equalto" thisone.
Theequalsmethodimmplitions sanequivalence onnon-nullobjectreferences: —Fromoracle—
Les égaux de l'objet de classe d'origine compare les références aux objets non vides de deux variables.
Code source:
public booléen est égal (objet obj) {return (this == obj); }Grâce au code source, nous pouvons voir que la classe d'origine égale est en fait équivalente à "==".
-finaliser-
―EtClass ll
―Hashcode -
Dans le langage de programmation de Thejava, tout ce qui est de la méthode CLASSIMPLICYOREXPLICYLYPROVIDESHASHCODE (), qui digèresthedatastoredInan, de TheClassIntoasingsingsinglehashValue (A32-bitssignedInTeger) est intentionné ForUsingInclustering. DefaultSanativeMethod, ce qui signifie, ithastheModifier'native ', asitisationdDiretlyinthenativecodeinthejvm.
Source: Wikipedia
Chaque classe de Java implémente la méthode HashCode de l'objet implicitement ou explicitement.
Pour résumer avec Google et le personnel officiel, pourquoi l'auteur a-t-il HashCode dans la classe d'origine?
①. Optimisation de stockage des objets de classe pour faciliter la recherche des objets de classe.
②. Utiliser avec égaux.
Remarque: De nombreux blogs disent que la méthode HashCode renvoie l'adresse de stockage physique ou l'adresse de stockage logique de la classe. Cette déclaration est erronée. Selon la déclaration officielle, la valeur 32 bits retournée n'est liée qu'à l'emplacement de stockage de l'objet de classe.
―Notifier -
―NotifyAllll
―Tostring -
La méthode TOSTRING pour l'objet de classe avance dans le nom de la classe, TheAt-SignCharacter` @ ', et la représentation décimale HEXA non signée du code de hachage de l'objet.
getClass (). getName () + '@' + integer.tohexstring (hashcode ())
Code source:
public String toString () {return getClass (). getName () + "@" + integer.tohexString (hashcode ()); }Renvoie une valeur de hachage dans le nom de classe de format + @ + de la classe.
-attendez-
finaliser()
Résumer
Ce qui précède est l'intégralité du contenu de cet article sur Java.lang.Object Reading of Java Source Code. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!