Java之類Object方法原始碼分析

2021-07-23 05:39:20 字數 1388 閱讀 4424

object是所有類的父類,它裡面的方法被所有的類擁有,或者部分覆蓋重寫,因此了解object中的方法,對理解其他類的方法是十分必要的。

//1.這個方法和static塊結合使用,在類第一次被載入的時候,註冊本地方法

private static native void registernatives();

static

//2.執行時呼叫此方法返回物件所屬的類,從而完成反射等一系列操作,此方法是final的,表示不想被子類覆蓋修改

public final native class<?> getclass();

//3.返回hashcode,任何乙個物件都有此hashcode,如果物件相同equals,那麼hashcode必須相同,但是hashcode相同,不一定是同乙個物件equals

//因為object的equals方法比較的是引用,所以hashcode就是同乙個物件的,肯定是相同的,但是如果過載的話,過載equals,則必須過載hashcode,

//使得equals則hashcode相同這個屬性必須滿足,才能完成集合當中的操作

public native int hashcode();

public boolean equals(object obj)

//每個物件對有clone方法,就是從根物件繼承過來的

protected native object clone() throws clonenotsupportedexception;

//為了方便**的除錯和輸出,每個物件都有轉化為字串的方法,也就是tostring,但是預設的tostring是類名@hashcode()的十六進製制值

//一般的類都會覆蓋此方法然後實現自己特有格式的輸出

public string tostring()

public final native void notify();

public final native void notifyall();

public final native void wait(long timeout) throws interruptedexception;

public final void wait(long timeout, int nanos) throws interruptedexception

if (nanos < 0 || nanos > 999999)

if (nanos > 0)

wait(timeout);

}public final void wait() throws interruptedexception

//可以實現自己的finalize方法來完成一些清理動作

protected void finalize() throws throwable

java基礎 Object的主要方法

package test public class test7 這是它的底層 system.out.println s1 public final void notify 喚醒在此物件監視器上等待的單個執行緒。public final void notifyall 喚醒在此物件監視器上等待的所有執行...

C 基礎之類 Class 與物件 Object

從今天的課程開始,我們要開始講解物件導向的一些知識。類就是現實世界中某一些具體相同特徵事物的乙個抽象。c 就是一門完全物件導向的語言。c 中類的概念和我們現實生活中類的概念相同,例如 毛毛是條狗 這句話,這裡狗就代表乙個類,而毛毛是狗類的乙個例項。我們來看乙個 例子 我們來定義乙個狗類 class ...

Java中Object類的常用方法

類層次結構的根類.每個類都使用 object 作為超類 父類 public final class getclass 以class形式表示的當前類 返回 表示此物件執行時類的 class 物件。class類中有乙個方法 public string getname 以 string 的形式返回此cla...