Java中的Object方法在面試中是一個(gè)非常高頻的點(diǎn),畢竟Object是所有類的“老祖宗”。Java中所有的類都有一個(gè)共同的祖先Object類,子類都會(huì)繼承所有Object類中的public方法。
先看下Object的類結(jié)構(gòu)(快捷鍵:alt+7):
1.getClass方法
final方法、獲取對(duì)象的運(yùn)行時(shí)class對(duì)象,class對(duì)象就是描述對(duì)象所屬類的對(duì)象。這個(gè)方法通常是和Java反射機(jī)制搭配使用的。
2.hashCode方法
該方法主要用于獲取對(duì)象的散列值。Object中該方法默認(rèn)返回的是對(duì)象的堆內(nèi)存地址。
3.equals方法
該方法用于比較兩個(gè)對(duì)象,如果這兩個(gè)對(duì)象引用指向的是同一個(gè)對(duì)象,那么返回true,否則返回false。一般equals和==是不一樣的,但是在Object中兩者是一樣的。子類一般都要重寫這個(gè)方法。
4.clone方法
該方法是保護(hù)方法,實(shí)現(xiàn)對(duì)象的淺復(fù)制,只有實(shí)現(xiàn)了Cloneable接口才可以調(diào)用該方法,否則拋出CloneNotSupportedException異常。
默認(rèn)的clone方法是淺拷貝。所謂淺拷貝,指的是對(duì)象內(nèi)屬性引用的對(duì)象只會(huì)拷貝引用地址,而不會(huì)將引用的對(duì)象重新分配內(nèi)存。深拷貝則是會(huì)連引用的對(duì)象也重新創(chuàng)建。
5.toString方法
返回一個(gè)String對(duì)象,一般子類都有覆蓋。默認(rèn)返回格式如下:對(duì)象的class名稱+@+hashCode的十六進(jìn)制字符串。
6.notify方法
final方法,主要用于喚醒在該對(duì)象上等待的某個(gè)線程。
7.notifyAll方法
final方法,主要用于喚醒在該對(duì)象上等待的所有線程。
8.wait(longtimeout)方法
wait方法就是使當(dāng)前線程等待該對(duì)象的鎖,當(dāng)前線程必須是該對(duì)象的擁有者,也就是具有該對(duì)象的鎖。wait()方法一直等待,直到獲得鎖或者被中斷。wait(longtimeout)設(shè)定一個(gè)超時(shí)間隔,如果在規(guī)定時(shí)間內(nèi)沒有獲得鎖就返回。
以上就是長(zhǎng)沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“基礎(chǔ)入門Java中object類的方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。