Object類的方法

image.png

上圖中除了registerNatives方法用于注冊(cè)本地方法朵你。

getClass方法

可以返回這個(gè)實(shí)體的Class對(duì)象各聘,可以用來獲得這個(gè)類的元數(shù)據(jù)。在反射中經(jīng)常使用抡医。

clone方法

被用來拷貝一個(gè)新對(duì)象躲因。在Java中使用等號(hào)只是拷貝對(duì)象的引用并不是對(duì)象,需要拷貝對(duì)象的時(shí)候忌傻,可以借助clone方法大脉。

要通過clone方法復(fù)制某一個(gè)對(duì)象,在該類中必須實(shí)現(xiàn)java.lang.Cloneable接口水孩。
下面的代碼將演示淺拷貝镰矿。

class Province{
    private String name;
    Province(String name){
        this.name = name;
    }
}

@Data
public class Student implements Cloneable{
    private String name;
    private int age;
    private Province province;

    public Student(String name, int age, Province province) {
        this.name = name;
        this.age = age;
        this.province = province;
    }

    @Override
    protected Object clone() {
        try {
            return super.clone();
        }catch (CloneNotSupportedException e){
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) {
        Province province = new Province("Shanxi");
        Student student1 = new Student( "student1",23, province);
        Student student2 = (Student) student1.clone();

        student1.setName("student2");
        System.out.println(student1.getName());
        System.out.println(student2.getName());
    }
}

toString方法

toString提供對(duì)象的字符串表示形式。
類Object的默認(rèn)toString()方法返回一個(gè)字符串俘种,該字符串包括該對(duì)象的類名稱衡怀,"@"字符以及該對(duì)象的哈希碼的無符號(hào)十六進(jìn)制表示形式。
當(dāng)需要打印對(duì)象引用時(shí)安疗,toString方法就會(huì)被調(diào)用抛杨。

public class Student {
    private String name;
    private int age;
    public Student(int age, String name){
        this.age = age;
        this.name = name;
    }
    public static void main(String[] args) {
        Student student = new Student(23, "mianjingxiangjie");
        System.out.println(student.toString());
    }
}

打印出的結(jié)果是:

Student@4554617c

hashCode方法

對(duì)于每個(gè)對(duì)象,JVM都會(huì)生成一個(gè)唯一的數(shù)字荐类,即哈希碼怖现。它為不同的對(duì)象返回不同的整數(shù)。這個(gè)方法為HashMap玉罐、HashSet等方法提供支持屈嗤。針對(duì)上面的toString方法的演示代碼中,添加一個(gè)hashcode方法吊输,指定對(duì)象的哈希碼饶号。

@Override
public int hashCode() {
    return 200;
}

打印的結(jié)果將為:

Student@c8

其中c8是16進(jìn)制表示,轉(zhuǎn)化為10進(jìn)制就是12*16+8=200季蚂,正好是hashcode的返回值茫船。

equals方法

被用來比較兩個(gè)對(duì)象是否相等。在重寫equals的時(shí)候也需要重寫hashCode方法扭屁。
HashMap和HashSet中判兩個(gè)對(duì)象是否相等算谈,首先比較hashCode,如果hashCode相等才回執(zhí)行equals方法料滥。

finalize方法

這個(gè)方法在垃圾回收之前被執(zhí)行然眼,可以通過重寫finalize方法來重置系統(tǒng)資源,執(zhí)行清理活動(dòng)并且最大程度的減少內(nèi)存泄漏葵腹。
可以通過下面的實(shí)例來測(cè)試:

public class Student {

    private String name;

    private int age;

    public Student(int age, String name){
        this.age = age;
        this.name = name;
    }

    public void finalize(){
        System.out.println("對(duì)象被回收高每!");
    }

    public static void main(String[] args) {
        Student student = new Student(23, "mianjingxiangjie");
        System.out.println(student.toString());
        student = null;
        System.gc();
    }
}

上面的代碼會(huì)輸出如下結(jié)果:

Student@4554617c
對(duì)象被回收屿岂!

wait方法

調(diào)用線程放棄鎖并且進(jìn)入睡眠狀態(tài),直到其他線程進(jìn)入同一個(gè)monitor并且執(zhí)行notify喚醒線程鲸匿。

notify雁社,notifyAll 方法

和wait相反,用于喚醒線程晒骇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霉撵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子洪囤,更是在濱河造成了極大的恐慌徒坡,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瘤缩,死亡現(xiàn)場離奇詭異喇完,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)剥啤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門锦溪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人府怯,你說我怎么就攤上這事刻诊。” “怎么了牺丙?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵则涯,是天一觀的道長。 經(jīng)常有香客問我冲簿,道長粟判,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任峦剔,我火速辦了婚禮档礁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吝沫。我一直安慰自己呻澜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布野舶。 她就那樣靜靜地躺著易迹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪平道。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天供炼,我揣著相機(jī)與錄音一屋,去河邊找鬼窘疮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冀墨,可吹牛的內(nèi)容都是我干的闸衫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诽嘉,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼蔚出!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起虫腋,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤骄酗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后悦冀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趋翻,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年盒蟆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了踏烙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡历等,死狀恐怖讨惩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寒屯,我是刑警寧澤步脓,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站浩螺,受9級(jí)特大地震影響靴患,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜要出,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一鸳君、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧患蹂,春花似錦或颊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沼溜,卻和暖如春平挑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工通熄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唆涝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓唇辨,卻偏偏與公主長得像廊酣,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赏枚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 構(gòu)造函數(shù) hashCode() 和 equals() 函數(shù)用來判斷對(duì)象是否相同, wait(), wait(lon...
    Cambrian寒武紀(jì)閱讀 124評(píng)論 0 0
  • Java Object類方法解析 在Java中Object是所有類的父類亡驰,任何類都默認(rèn)繼承Object,其提供的方...
    Robin132929閱讀 736評(píng)論 0 0
  • Object類 所有類型都隱式的派生于java.lang.Object類,其主要用于兩個(gè)目的: 使用Object引...
    礪劍鋒成閱讀 648評(píng)論 0 2
  • Object是所有類的父類饿幅,任何類都默認(rèn)繼承Object凡辱。Object類到底實(shí)現(xiàn)了哪些方法? 1.clone方法保...
    沐_Andorid開發(fā)者閱讀 395評(píng)論 0 0
  • Object類是Java中類層次的根類诫睬,是每個(gè)類的超類煞茫,無論是對(duì)象還是數(shù)組都實(shí)現(xiàn)這個(gè)類的方法;也就是說Object...
    彭空空閱讀 562評(píng)論 0 1