java基礎面試題總結之一

面向對象的三大特性
繼承 :子類繼承父類的變量和方法,提高代碼的複用效率,
多態 :指的是不同類的對象對同意消息做出響應,主要有兩個特點:重寫和重載
重寫就是子類重寫父類的方法,參數列表和個數及其返回值都相同,也叫做運行時多態
重載就是一個類中有多個同名的方法,但是他們的返回值和參數列表不同,也叫做編譯時多態。
封裝:指的是對數據的封裝,對數據的訪問只能通過已定義的界面,就是通過一系列的接口進行訪問

抽象類和接口的區別
抽象類:
一個抽象類中有抽象方法和普通方法
只能被繼承,但是一個類只能繼承一個類
一個抽象類中方法是隨意的。

接口:
一個接口中只能是抽象的方法
只能實現,但是一個類可以實現多個接口
接口中定義的方法只能是public static final修飾的

final finally和finalize的區別:
final是修飾靜態方法和變量,及其對象,被修飾後不能被引用。通常放在堆中。當一個方法被final修飾後子類不能重寫該方法。
finally:是try —catch中的,不管程序出現不出現異常,程序都會執行這個塊,經常在釋放資源的情況下使用,比如jdbc連接數據庫的時候就是藉助此塊進行釋放資源。
finalize是object中的方法,在垃圾回收中執行調用被回收對象的finalize()方法,如果你要關閉文件,要注意一番垃圾回收準備好釋放對象佔用的空間,將首先調用此方法,並且在下一次調用垃圾回收時纔會真正的回收對象佔用的內存。

String時基本類型嗎?
不是的,時引用類型,基本欸型包括int double float char byte boolean short long

值傳遞和引用傳遞的區別:
值傳遞是在方法調用是,實參會把值傳遞給形參,形參只是初始化一個臨時的存儲空間,雖然有着相同的值但是形參不會改變實參得值。
引用傳遞是在方法調用的時候,傳遞的是對象,形參和是實參指向的是同一個單元。

==和equals和hashcode的區別:
==是用來比較兩個變量是否相等,也就是說比較兩個變量在內存中存儲的值是否相同。
equals是比較連個對象的內容是否相同。
hashcde是來判斷兩個對象是否相等

String stringbuffer和stringbuilder的區別:
String是不可變字符串,如果要將其進行修改的話要創建一個Stringbuffer對象,然後調用其中的append()方法,最後調用他當中的toString()方法。Stringbuffer是可修改的字符串,如果進行要進行修改建議使用Stringbuffer,Stringbuilder也是字符緩衝區,在執行效率來看,Stringbuffer次於Stringbuilder,Stringbuffer支持單線程,而Stringbuilder支持多線程,線程安全問題就來了,如果考慮線程安全的話建議使用Stirngbuilder。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章