更新時間:2020-07-20 15:31:07 來源:動力節(jié)點 瀏覽2341次
1、java中==和equals()的區(qū)別???
答:
簡單來說==適合應用于基本數(shù)據(jù)類型的比較,而重寫后equals()方法適合應用于引用類型的比較。原因在于基本類型變量直接存儲的是值本身,而引用類型變量存儲的是對象的引用,當引用相同時,用==比較,自然會是true,當引用不同時,用==比較,則會是false.equlals方法是object中的方法,對于所有繼承于object的類都會有該方法.
當使用equals方法是需對此方法進行重寫,如果沒有對equals方法重寫,則比較的是引用類型的,變量所指向的對象的地址,沒有重寫的equals,和==效果相同,只有重寫了equals,比較的才會是所指對象的內(nèi)容。
2、java中String、StringBuild、StringBuffer的區(qū)別???
答:
String是不可變類,因此對String進行操作都會產(chǎn)生新的String對象,容易導致效率低下,浪費內(nèi)存空間。因此,為了應對經(jīng)常性的字符串操作,引入了StringBuffer、StringBuild這種字符串變量。
StringBufffer和StringBuild最大的區(qū)別,就是StringBuffer線程安全,但效率低,而StringBuild線程不安全,但效率高,且此兩者只能通過構造函數(shù)的方式初始化。而String可以通過構造函數(shù)和字面量復制兩種方式。
3、java中重載(overload)、重寫(override)的區(qū)別???
答:
1)重載是通過不同的方法參數(shù)來區(qū)分的,例如不同的參數(shù)個數(shù)、不同的參數(shù)類型、或者不同的參數(shù)順序。不能通過方法的訪問權限、返回值類型、和拋出異常類型類進行重載。
2)覆蓋是指子類函數(shù)覆蓋父類函數(shù),覆蓋一個方法,并對其重寫。重寫需要注意,子類必須與父類中,被重寫的方法有相同的函數(shù)名、相同的參數(shù)、相同的返回值、以及拋出異常也必須保持一致。
4、java中接口和抽象類的區(qū)別???
答:
1)、抽象類和接口都不能直接實例化
2)、抽象類要被子類繼承(extends),接口要被類實現(xiàn)(implements)
3)、接口只能做方法的聲明,且所有方法訪問權限必須是public,抽象類中可以做方法聲明,也可以做方法的實現(xiàn)。
4)、接口中定義的變量只能是公共的靜態(tài)
常量,抽象類中的變量可以是普通變量。
5)、抽象類里的抽象方法必須全部被子類所實現(xiàn),如果子類不能全部實現(xiàn)父類的抽象方法,那么該子類只能是抽象類。同理如果在實現(xiàn)接口的時候,如果不能實現(xiàn)接口方法,那么該類也只能為抽象類。
6)、抽象方法只能聲明,不能實現(xiàn),接口是設計的結果,抽象類是重構的結果。
7)、抽象類里可以沒有抽象方法。
8)、一個類里有抽象方法,那么這個類只能是抽象類。
9)、抽象方法需要被實現(xiàn),因此不能是私有的,也不能是靜態(tài)的。
10)、接口可以繼承接口,并可多繼承接口,但類只能單根繼承。
5、java中this和super的區(qū)別???
答:
1)、this三大作用
1、普通的直接引用(指向當前對象的指針)
2、形參與成員名字重名(用this區(qū)分)
3、引用構造函數(shù)
2)、super三大作用
1、普通的直接引用(指向當前對象的父類)
2、子類中的成員變量或者方法和父類成員變量和方法重名。
3、引用構造函數(shù)
super(參數(shù)):調(diào)用基類中的某一個構造函數(shù)(應該為構造函數(shù)中的第一條語句)
this(參數(shù)):調(diào)用本類中另一種形成的構造函數(shù)(應該為構造函數(shù)中的第一條語句)
super:它引用當前對象的直接父類中的成員(用來訪問直接父類中被隱藏的父類中成員數(shù)據(jù)或函數(shù),基類與派生類中有相同成員定義時如:super.變量名super.成員函數(shù)據(jù)名(實參)\
this:它代表當前對象名(在程序中易產(chǎn)生二義性之處,應使用this來指明當前對象;如果函數(shù)的形參與類中的成員數(shù)據(jù)同名,這時需用this來指明成員變量名)
調(diào)用super()必須寫在子類構造方法的第一行,否則編譯不通過。每個子類構造方法的第一條語句,都是隱含地調(diào)用super(),如果父類沒有這種形式的構造函數(shù),那么在編譯的時候就會報錯。
super()和this()類似,區(qū)別是,super()從子類中調(diào)用父類的構造方法,this()在同一類內(nèi)調(diào)用其它方法。
super()和this()均需放在構造方法內(nèi)第一行。盡管可以用this調(diào)用一個構造器,但卻不能調(diào)用兩個。
this和super不能同時出現(xiàn)在一個構造函數(shù)里面,因為this必然會調(diào)用其它的構造函數(shù),其它的構造函數(shù)必然也會有super語句的存在,所以在同一個構造函數(shù)里面有相同的語句,就失去了語句的意義,編譯器也不會通過。
this()和super()都指的是對象,所以,均不可以在static環(huán)境中使用。包括:static變量,static方法,static語句塊。
從本質(zhì)上講,this是一個指向本對象的指針,然而super是一個Java關鍵字。
以上就是動力節(jié)點java培訓機構的小編針對“Java互聯(lián)網(wǎng)面試題,經(jīng)典必問問答”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。
相關閱讀