Java的Object类
Object類:
所有類的直接或間接超類,處在類層次的最高點(diǎn)
包含了所有Java類的公共屬性
Object類的主要方法:
public final Class getClass() 獲取當(dāng)前對(duì)象所屬類的信息,返回Class對(duì)象;
public String toString() 返回表示當(dāng)前對(duì)象本身有關(guān)信息的字符串對(duì)象;
public boolean equals(Obeject obj) 比較兩個(gè)對(duì)象引用是否指向同一對(duì)象,是返回ture,否返回flase;
protected Object clone() 復(fù)制當(dāng)前對(duì)象,并返回這個(gè)副本(對(duì)象的復(fù)制)
public int hashCode() 返回該對(duì)象的哈希代碼值
protected void finalize() throws Throwable 在對(duì)象被回收時(shí)執(zhí)行通常完成對(duì)象的資源釋放工作;
相等和同一:
兩個(gè)對(duì)象具有相同的類型,及相同的屬性值,則稱二者相等(equal)。
如果兩個(gè)引用變量指向的時(shí)同一個(gè)對(duì)象,則稱這兩個(gè)引用變量同一
兩個(gè)對(duì)象同一,則肯定相等
兩個(gè)對(duì)象相等,不一定同一。
比較運(yùn)算符“==”判斷的是這兩個(gè)對(duì)象是否同一;(判斷兩個(gè)引用是否指向同一個(gè)對(duì)象)
hashCode方法:
hashCode是一個(gè)返回對(duì)象散列碼的方法;
在一個(gè)Java程序的一次執(zhí)行過程中,如果對(duì)象“相等比較”所使用的信息沒有被修改的話,同一對(duì)象執(zhí)行hashCode方法每次都應(yīng)返回同一個(gè)整數(shù)。在不同的執(zhí)行中,對(duì)象的hashCode方法返回值不必一致(不是同一次執(zhí)行,對(duì)象的hashCode不一定相同)
如果依照equals方法兩個(gè)對(duì)象是相等的,則在這兩個(gè)對(duì)象上調(diào)用hashCode方法應(yīng)該返回相同的整數(shù)結(jié)果
如果依照equals方法兩個(gè)對(duì)象不想等,并不要求在這兩個(gè)對(duì)象上調(diào)用hashCode方法返回值不同。
只要實(shí)現(xiàn)的合理,Object類定義的hashCode方法為不同對(duì)象返回不同的整數(shù),一個(gè)典型的實(shí)現(xiàn)是,將對(duì)象的內(nèi)部地址轉(zhuǎn)換為整數(shù)返回,但是Java語(yǔ)言并不要求必須這樣實(shí)現(xiàn);
clone方法:
用于根據(jù)已存在的對(duì)象構(gòu)造一個(gè)新的對(duì)象,也就是復(fù)制對(duì)象。
使用clone方法賦值對(duì)象:
覆蓋clone方法:在Obejct類中被定義為protected,所以需要覆蓋為public。(以為每個(gè)對(duì)象類的內(nèi)部屬性都不一樣,所以需要覆蓋)實(shí)現(xiàn)Cloneable接口;
finalize方法:
在對(duì)象被垃圾回收期回收之前,系統(tǒng)自動(dòng)調(diào)用對(duì)象的finalize方法;
如果要覆蓋finalize方法,覆蓋方法的最后必須調(diào)用super.finalize。
getClass方法:
final方法,返回一個(gè)Class對(duì)象,用來(lái)帶便對(duì)象所屬的類;
通過Class對(duì)象,可以查詢類的各種信息:比如名字、超類、實(shí)現(xiàn)接口的名字等;
notify、notifyAll、wait方法:
final方法,不能覆蓋,這三個(gè)方法主要用在多線程程序中;
?
轉(zhuǎn)載于:https://www.cnblogs.com/mcmx/p/9121582.html
總結(jié)
以上是生活随笔為你收集整理的Java的Object类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: $.ajax()方法详解(网上引用)
- 下一篇: 牛客练习赛19 E和F(签到就走系列)托