一祈惶。 接口和抽象類的區(qū)別
接口中所有方法都是默認(rèn)的public 但是抽象類中有不是抽象的方法
接口中除了static雕旨、final變量扮匠,不能有其他變量,而抽象類中則不一定
一個(gè)類可以實(shí)現(xiàn)多個(gè)接口凡涩,但只能實(shí)現(xiàn)一個(gè)抽象類棒搜。接口自己本身可以通過extends關(guān)鍵字?jǐn)U展多個(gè)接口。
從設(shè)計(jì)層面來說活箕,抽象是對(duì)類的抽象力麸,是一種模板設(shè)計(jì),而接口是對(duì)行為的抽象育韩,是一種行為的規(guī)范克蚂。
二 對(duì)象相等和引用相等有什么區(qū)別
前者是指內(nèi)存中的對(duì)象是否相等? 后者是指對(duì)象的引用地址是否相等
三?hashCode()與equals()的相關(guān)規(guī)定
如果兩個(gè)對(duì)象相等,則hashcode一定也是相同的
兩個(gè)對(duì)象相等,對(duì)兩個(gè)對(duì)象分別調(diào)用equals方法都返回true
兩個(gè)對(duì)象有相同的hashcode值筋讨,它們也不一定是相等的(為什么)
equals 方法被覆蓋過埃叭,則 hashCode 方法也必須被覆蓋
hashCode() 的默認(rèn)行為是對(duì)堆上的對(duì)象產(chǎn)生獨(dú)特值。如果沒有重寫 hashCode()悉罕,則該 class 的兩個(gè)對(duì)象無論如何都不會(huì)相等(即使這兩個(gè)對(duì)象指向相同的數(shù)據(jù))
四?Java序列化中如果有些字段不想進(jìn)行序列化赤屋,怎么辦
對(duì)于不想進(jìn)行序列化的變量,使用transient關(guān)鍵字修飾壁袄。
transient關(guān)鍵字的作用是:阻止實(shí)例中那些用此關(guān)鍵字修飾的的變量序列化类早;當(dāng)對(duì)象被反序列化時(shí),被transient修飾的變量值不會(huì)被持久化和恢復(fù)嗜逻。transient只能修飾變量涩僻,不能修飾類和方法。