本人 小渣一枚,從事Java開發時間不長,以下提到的問題僅代表個人意見,有哪些不合理的地方還望大神們指出,謝謝
好了,言歸正傳:
面試作為企業選拔人才的唯一標準,那麼每家企業都有各自選才的標準,但是技術(Java)這方面還是百變不離其宗,基礎成了所有面試官喜歡拿來考察面試者初步慎選的唯一標準,
所以基礎各方面一定要紮實,牢固
下面是一些企業經常會問到的基礎題:大家可以借鑒一下。(原創,全部本人個人理解,非網站抄來)
1. Overload 和Override區別,Overloaded的方法是否可以改變傳回值的類型。
Overload(重載):發生在同一個類中,表示在同一個類中可以有多個同名的方法,但這些方法的參數列表各不相同(即參數個數和參數類型不同)。
Override(重寫、覆蓋):發生在子類和父類之間,表示子類中的方法可以與父類中的某個方法的名稱和參數完全相同。通過子類建立的執行個體對象調用方法時,將調用子類中定義的方法,把父類中定義的方法給覆蓋了(物件導向多態的一種體現,經常筆試的前幾個選擇題或者簡答題常考到 )。
最熟悉的覆蓋就是對介面方法的實現,在介面中一般只是進行了聲明,實現的時候需要實現介面中聲明的所有方法,在繼承中也可能會在子類中覆蓋父類中的方法。
子類覆蓋父類的方法時需注意:
1.子類拋出的異常只能比父類少,或者是拋出父類異常的子異常。(原因:子類可以解決父類的一些問題,不能比父類有更多的問題)。
2.子類方法的存取權限只能比父類更大,不能更小,如父類是private,子類則不存在覆蓋的限制,相當於子類增加了一個全新的方法。
Overloaded的方法是否可以改變傳回值的類型。
1.如果幾個Overloaded方法的參數列表不一樣,傳回值的類型可以不一樣。
2.如果兩個方法的參數列表完全一樣,不可以。(這裡可以用反證法證明)
(因為有時候我們調用一個方式時也可以不定義返回結果變數,即不用關心返回結果,
例如,我們調用map.remove(key)方法時,雖然remove有傳回值,但我們通常不會定義接收返回結果的變數,這時候假設該類中有兩個名稱和參數列表完全相同的方法,僅僅是傳回值不同,Java就無法確定到底該調用哪個方法,因為它無法通過返回結果類型來判斷。)
重載需要注意的幾點:
1.在使用重載時只能通過不同的參數樣式(不同的參數類型,個數,順序,同一參數類型必須不一樣)。
2.不能通過存取權限傳回型別拋出的異常進行重載。
3.方法的異常類型和數目不會對重載造成影響。
4.對於繼承來說,如果某一方法在父類中的存取權限是private,那麼子類就不能對其進行重載,如果定義了的話,只是定義了一個新方法,不會達到重載的效果。
2.String和StringBuffer區別
String和StringBuffer都可以操作字串,String有equals方法,StringBuffer沒有。
String提供數值不可改變的字串,StringBuffer提供的字串是可變的,可以用來動態構造字元資料。
3.HashMap和HashTable區別
4.final,finally,finalize區別
5.Java如何進行異常處理,關鍵字:throw,throws,try catch finally分別代表聲明意思。在try塊中可以拋出異常嗎。
6.error和Exception有什麼區別。
7.forward和redirect區別。
8.Collection和Collections區別。
9.int和integer區別。
10.ArrayList和LinkedList區別。
11.Hibernate和ibatis區別。
12.abstract class 和 interface區別。
13.