1. 為什么使用 java.lang 包下的所有類蝴猪,都不需要手動導(dǎo)入
因為編譯器會默認導(dǎo)入java.lang 包叔汁,所以,不需要手動導(dǎo)入池磁,
2. Java 對象在比較前都要實現(xiàn)equals 和hashcode 方法跪解,equals 默認使用Object對象的equals 方法穗酥,只比較對象引用地址是否一致。hashcode方法則是在使用Map 或者Set 需要散列的集合的時候惠遏,用來計算散列值的,如果2個對象hash值一樣的話骏啰,則集合中只會保存一個對象节吮。
3. 在Java規(guī)范中,對 equals 方法的使用必須遵循以下幾個原則:
∨懈①透绩、自反性:對于任何非空引用值 x,x.equals(x) 都應(yīng)返回 true壁熄。
? ? ? ?②帚豪、對稱性:對于任何非空引用值 x 和 y,當(dāng)且僅當(dāng) y.equals(x) 返回 true 時草丧,x.equals(y) 才應(yīng)返回 true狸臣。?
③昌执、傳遞性:對于任何非空引用值 x烛亦、y 和 z,如果 x.equals(y) 返回 true懂拾,并且 y.equals(z) 返回 true煤禽,那么 x.equals(z) 應(yīng)返回 true。
♂场④檬果、一致性:對于任何非空引用值 x 和 y,多次調(diào)用 x.equals(y) 始終返回 true 或始終返回 false,前提是對象上 equals 比較中所用的信息沒有被修改
⊙〖埂⑤杭抠、對于任何非空引用值 x,x.equals(null) 都應(yīng)返回 false知牌。
4. getClass 方法用來返回對象的運行時類祈争。
5. 一個類必須要有一個構(gòu)造器的存在,如果沒有顯示聲明角寸,那么系統(tǒng)會默認創(chuàng)造一個無參構(gòu)造器菩混。