簡(jiǎn)約風(fēng)格網(wǎng)站代哥seo
今天來(lái)說(shuō)一說(shuō) java.lang.Object類(所有類的父類),所有類都直接或者間接的繼承自該類。
1.構(gòu)造方法:
public Object()? 無(wú)參的構(gòu)造方法
2.成員方法:
1) public final native Class<?> getClass();?? 返回此對(duì)象的運(yùn)行時(shí)類,即字節(jié)碼文件對(duì)象
2) public native int hashCode();?? 返回該對(duì)象的哈希碼值
3) public boolean equals(Object obj){ return (this == obj); };? 比較兩個(gè)對(duì)象是否相同, 當(dāng)子類重寫:可比較屬性值
4) protected native Object clone() throws CloneNotSupportedException;
5) public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
???? 返回對(duì)象的字符串表示形式即內(nèi)存地址值。組成:包名...類名(即類的全路徑名)@內(nèi)存地址值的十六進(jìn)制
6) public final native void notify();? 喚醒線程
7) public final native void notifyAll();
8) public final void wait() throws InterruptedException { wait(0); }
9) public final native void wait(long timeout) throws InterruptedException;
10) protected void finalize() throws Throwable { }
3.面試題:==和equals()的區(qū)別?
equals():
比較基本類型:基本類型比較的是值。
比較引用類型:默認(rèn)比較的是引用類型的內(nèi)存地址值是否相同,如果子類重寫了該方法,那就得按照重寫后的規(guī)則進(jìn)行比較。
==:?? ?
比較基本類型:比較的是基本類型的值是否相同。
比較引用類型:比較的是引用類型的內(nèi)存地址值是否相同。
?
?String類源碼中重寫的equals方法如下:
public boolean equals (Object anObject){if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String) anObject;int n = this.value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {f(v1[i] != v2[i])return false;i++;}return true;}}return false;
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/codingdong/p/9665497.html