Objekt ist die übergeordnete Klasse aller Klassen, und jede Klasse erbt standardmäßig das Objekt. Welche Methoden implementiert die Objektklasse?
1. Klonmethode
Schutzmethode zur Implementierung eines flachen Kopierens von Objekten. Diese Methode kann nur durch die Implementierung der klonbaren Schnittstelle aufgerufen werden, sonst wird eine Clonenotsupportedexception -Ausnahme ausgeworfen.
2. GetClass -Methode
Endgültige Methode erhalten Sie den Laufzeittyp.
3. ToString -Methode
Diese Methode wird häufiger verwendet und hat im Allgemeinen Unterklassen überschrieben.
4. Verschluss der Methode
Diese Methode wird verwendet, um Ressourcen freizugeben. Da es unmöglich ist zu bestimmen, wann die Methode aufgerufen wird, wird sie selten verwendet.
5. Gleiche Methode
Diese Methode ist eine sehr wichtige Methode. Im Allgemeinen sind gleich und == sind unterschiedlich, aber in Objekt sind die beiden gleich. Unterklassen müssen diese Methode im Allgemeinen umschreiben.
6. Hashcode -Methode
Diese Methode wird für die Hash -Suche verwendet. Wenn die Equals -Methode neu geschrieben wird, wird die HashCode -Methode im Allgemeinen umschreibt. Diese Methode wird in einigen Sammlungen mit Hashing -Funktionen verwendet.
Im Allgemeinen müssen OBJ1.Equals (OBJ2) == True erfüllt sein. Obj1.hash-code () == obj2.hashcode () kann eingeführt werden, aber gleiches HashCode erfüllt nicht unbedingt gleichermaßen. Um die Effizienz zu verbessern, sollten die beiden oben genannten Bedingungen jedoch nahe am gleichwertigen gehalten werden.
7. WAIT -Methode
Die Wartenmethode besteht darin, den aktuellen Thread auf die Sperre des Objekts zu warten. Der aktuelle Thread muss der Eigentümer des Objekts sein, dh die Schloss des Objekts. Die Wait () -Methode wartet, bis das Schloss erhalten oder unterbrochen wird. Warten (langjährig) legt ein Zeitüberschreitungsintervall fest und kehrt zurück, wenn innerhalb der angegebenen Zeit keine Sperre erhalten wird.
Nach dem Aufrufen dieser Methode geht der aktuelle Thread ein, bis das folgende Ereignis auftritt.
(1) Andere Threads rufen die Benachrichtigungsmethode des Objekts auf.
(2) Andere Threads rufen die Benachrichtigungsmethode des Objekts auf.
(3) Andere Threads rufen unterbrechen, um den Thread zu unterbrechen.
(4) Das Zeitintervall ist eingetroffen.
Zu diesem Zeitpunkt kann der Thread geplant werden. Wenn es unterbrochen wird, wird eine InterruptedException geworfen.
8. Methode benachrichtigen
Diese Methode weckt einen Thread, der auf das Objekt wartet.
9. Benachrichtigen Sie die Methode
Diese Methode weckt alle Threads, die auf das Objekt warten.
-Objekt-
ClassObjective theroot für die klassifizierung archy.yway classShasObjectasa Superclass.Allobjects, einschließlich Arrays, implementieren Sie sie für diese Klasse-Fromoracle
-Erläuterung-
Die Objektklasse ist die übergeordnete Klasse, die von allen Objekten in Java geerbt wurde, und sogar ein Array erbt die übergeordnete Klasse (sie kann als Originalklasse, der Vorfahr aller Klassen, verstanden werden. Vielleicht möchten Sie sich fragen: Ist die erste Klasse, die von James ein Objekt geschrieben wurde?).
Alle Klassen erben die Objektklasse implizit, sodass sie nicht gesehen werden können.
-Objekt-
Standardkonstruktor
-Klon-
»Gleiche -
Zeigt whethersomeotherObjectis an.
TheequalsMethodimmplions SANEquivalenz Onnon-NullobjectReferences: —Fomoracle-
Das Gleichen des ursprünglichen Klassenobjekts vergleicht Verweise auf nicht leere Objekte von zwei Variablen.
Quellcode:
public boolean gleich (Objekt obj) {return (this == obj); }Durch den Quellcode können wir sehen, dass die ursprüngliche Klasse gleich ist, was tatsächlich "==" entspricht.
"Finaleize -
»GetClass -
»HashCode -
IntheJava programming language,everyclassimplicitlyorexplicitlyprovideshashCode() method, which digeststhedatastoredinan instance of theclassintoasinglehashvalue(a32-bitsignedinteger).Thishashisusedbyothercode whenstoringormanipulating theinstancethevaluesareintendedtobeevenlydistributedforvariedinputs ForuseInclustering. defaultIsanativemethod, was bedeutet, ithasthemodifier'nativ ', als issimplementeddirectlyInthenativeCodeInthejvm.
Quelle: Wikipedia
Jede Klasse in Java implementiert die HashCode -Methode von Objekt implizit oder explizit.
Warum hat der Autor HashCode in der Originalklasse, um mit Google und dem offiziellen Personal zusammenzufassen?
①. Speicheroptimierung von Klassenobjekten zur Erleichterung der Suche von Klassenobjekten.
②. Verwendung mit gleichem Gebrauch.
Hinweis: Viele Blogs sagen, dass die HashCode -Methode die physische Speicheradresse oder die logische Speicheradresse der Klasse zurückgibt. Diese Aussage ist falsch. Nach der offiziellen Erklärung hängt der zurückgegebene 32-Bit-Wert nur mit dem Speicherort des Klassenobjekts zusammen.
-benachrichtigen-
»Notifyall -
»TOString -
Die ToString-Methode für Klassenobjekte wendet sich aus dem Namen der Klasse, Theat-Signcharacter`@'und der nicht signierten Hexa-Dezimalpräsentation des Hash-Codes des Objekts. Inotherwords gibt diese Methode zurück dem Wert von:
getClass (). getName ()+'@'+Integer.tohexString (HashCode ())
Quellcode:
public String toString () {return getClass (). getName () + "@" + Integer.tohexString (HashCode ()); }Gibt einen Hash -Wert im Formatklassennamen +@ + der Klasse zurück.
-Warten-
finalize ()
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über Java.lang.Object Reading des Java -Quellcode. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!