Object
- Object是什麼
- Object的11個方法
Object是什麼
所有類的基類(父類),換而言之,所有類都繼承自Object類
Object的11個方法(重要)
- toString():輸出引用類型對象的類型和hashCode
- 打印對象時就是在調用對象的toString方法
- equals(Object obj):比較兩個對象是否相等(邏輯上)
- 底層使用"=="實現比較,可按照需求進行重寫
- hashCode():計算對象的存儲位置(在HashSet和HashMap中的位置,而非堆中的位置)
- 源碼修飾詞[native]:調用本地方法(哈希算法),不需要程序員關心
- equals能判斷相等的兩個元素,hashCode值必須一樣
- equals判斷不相等的兩個元素,hashCode值儘量不一樣
- 可按照需求進行重寫,通常與equals一起重寫
- getClass():得到對象的字節碼對象
- wait():線程等待
- wait(long timeout)
- wait(long timeout,int nanos)
- notify():喚醒單個線程
- notifyAll():喚醒所有線程
- clone():克隆對象
- 前提:該對象必須實現[Cloneable]接口
- 淺克隆:只克隆對象,若對象屬性中存在引用(假設爲A),則源對象與克隆出來的對象同時指向A
- 深克隆:同時克隆對象與屬性的引用,即存在源對象與它的屬性引用A和克隆出來的對象與克隆出來的屬性引用B(A與B內容相同,地址不同)
- finalize():當對象被回收時調用(相當於該對象的遺言)
- 可按照需求進行重寫