objectjava源碼-九游会j9娱乐平台
❶ 2020-09-10:java里object類有哪些方法
java object類是所有類的父類,主要方法有:
getclass():獲取運行時類型,返回值為class對象
2.hashcode():返回該對象的哈希碼值,是為了提高哈希表的性能(hashtable)
3.equals():判斷兩個對象是否相等,在object源碼中equals就是使用==去判斷,所以在object中equals是等價於==的,但是在string及某些類對equals進行了重寫,實現不同的比較。
4.clone():java里除了8種基本類型傳參數是值傳遞,其他的類對象傳參數都是引用傳遞,我們有時候不希望在方法里講參數改變,這是就需要在類中復寫clone方法。此方法只實現了一個淺層拷貝,對於基本類型欄位成功拷貝,對嵌套對象,只把地址拷貝了,需要自己重寫clone方法進行深度拷貝。
5.tostring():返回一個string字元串,用於描述當前對象的信息,可以重寫返回對自己有用的信息,默認返回的是當前對象的類名 hashcode的16進制數字。
6.wait():多線程時用到的方法,作用是讓當前線程進入等待狀態,同時也會讓當前線程釋放它所持有的鎖。直到其他線程調用此對象的 notify() 方法或 notifyall() 方法,當前線程被喚醒
7.notify():多線程時用到的方法,喚醒該對象等待的某個線程
8.notifyall():多線程時用到的方法,喚醒該對象等待的所有線程
9.finalize():對象在被gc釋放之前調用finalize方法。
你明白了嗎?
❷ 在哪裡可以看到java的object類中clone方法的源代碼
看不到的,是c代碼。聽說java開源了,你倒是可以去官網上看看。
調用中實現clonable介面並給出方法。
public class example implements clonable {
int valuetoclone;
public object clone() {
object o = super.clone();
(example) o).valuetoclone = valuetoclone;
return o;
}
}
另外參見api. 有的書建議不採用clonable,因為非常難實現一個完美的clone 鏈,且方法本身返回object需要cast,並不美觀。可以自己寫一個介面代替。