作者:公眾號JavaWeb學(xué)習(xí)筆記
轉(zhuǎn)載鏈接:原文
1.面向?qū)ο笥心男┨匦裕?/strong>
封裝痢艺,繼承介陶,多態(tài),抽象舌缤。
默認情況是前面三種某残,如果面試官問4大特性就把抽象加上。
抽象:將一類對象的共同特征總結(jié)出來的構(gòu)造類的過程玻墅。
2、訪問修飾符public环础、private剩拢、protected、default的區(qū)別徐伐?
public:當(dāng)前類,同包魏保,子類摸屠,其他包
protected:當(dāng)前類,同包季二,子類
default:當(dāng)前類,同包
private:當(dāng)前類
3刻蚯、Java有沒有g(shù)oto語句 桑嘶?
沒有,但是goto是保留字
4逃顶、運算符&和&&的區(qū)別充甚?
&:按位與和邏輯與
&&:短路與霸褒。
二者都要求運算符兩端都為true,整個表達式才為true。但是&&如果左邊為false技矮,就不用判斷右邊了殊轴。
5、String,StringBuffer,StringBuilder的區(qū)別旁理?
String是只讀字符串,引用的字符串內(nèi)容是不能被改變的。
StringBuffer和StringBuilder的字符串對象可以直接進行修改十性。StringBuilder是線程安全的劲适,理論上效率比StringBuffer高。
6霞势、short s1 = 1; s1=s1+1;有錯嗎?short s1=1;s1+=1;有錯嗎草雕?
前者不正確固以,后者正確。
因為1為int類型憨琳,所以s1+1也是int類型,需要強制類型轉(zhuǎn)換才能賦值給short菌湃。而s1+=1;就可以編譯通過遍略,相當(dāng)于s1=(short)s1+1;隱含了類型轉(zhuǎn)換骤坐。
7纯路、抽象類與接口有什么異同?
相同點:1)不能被實例化 2) 一個類繼承了抽象類或?qū)崿F(xiàn)了接口驰唬,需要實現(xiàn)其中全部的抽象方法。
不同點:
抽象類里的方法可以是抽象發(fā)方法和具體方法辖佣,接口里的方法只有抽象方法
抽象類的方法可以是public/private/protected等搓逾,接口的方法只能是public
抽象類可以有靜態(tài)方法,接口不能有靜態(tài)方法
抽象類可以定義變量世蔗,接口中的變量實際上都是常量
一個類只能繼承一個抽象類朗兵,一個類可以實現(xiàn)多個接口
8、final 余掖、finally 、finalize 的區(qū)別赁豆?
final :用于聲明屬性冗美,方法和類分別表示不可變覆蓋被其修飾的繼承。
finally:異常處理語句結(jié)構(gòu)的一部分墩衙,表示總是執(zhí)行。
finalize :Object類的一個方法 心铃,在垃圾回收器執(zhí)行時候會調(diào)用被對象此可以覆蓋類的一個方法挫剑,例如關(guān)閉文件等。
9愉棱、Math.round(11.5) 等于多少? Math.round( - 11.5)又等于多少?
Math.round(11.5)的返回值是12奔滑,
Math.round( - 11.5) 的返回值是-11 。
四舍五入的原理是在參數(shù)上加0.5然后取整王浴。
10梅猿、error和exception的區(qū)別?
Error類和Exception類的父類都是Throwable類.
Error類一般指與虛擬機相關(guān)的問題钞啸,如系統(tǒng)崩潰喇潘,虛擬機錯誤,內(nèi)存不足颖低,方法調(diào)用溢出等。對于這類錯誤導(dǎo)致的程序中斷,僅靠程序員本身無法恢復(fù)和預(yù)防扼褪,遇到這樣的錯誤,建議讓程序終止脏毯。
Exception類表示程序可以處理的一城幔崖,可以捕獲且可以恢復(fù)。