關於基礎話題,在面試初級java工程師的時候,我壹般會問以下兩種問題,每種五個問題,這樣就可以基本了解工程師的水平。
Java基本類
面向對象的基本類
Java基本類
1.描述壹下java的訪問修飾符,以及它們之間的區別?
回答:如果能回歸公有,私有,受保護,是可以的;如果回答默認,會加分。
2.int和Integer有什麽區別?
答案:如果答案是Integer是int的包裝類,那就OK;回答其他基本類型及其對應的包裝類,得分。
3.如何定義單精度浮點型的變量?
答案:浮點變量名= 1.2f;如果答案是雙精度浮點型,不加最後壹個f,會加分。
4.equals和= =有什麽區別?
回答:equals是值比較(壹般在處理java開發的時候說,還可以)而= =是引用比較(或者對象比較);答案等號可以自定義,加分。
5.將數組作為參數傳遞給方法。在方法中,數組中元素的值被更改。在方法之外,數組中的元素也是自適應的嗎?
回答:可以,因為引用是在java方法中傳遞的,所以可以。回答的話會引用說明自己的理解並加分。
面向對象的基本類
1.重載和重寫有什麽區別?
回答:這個看個人理解,理解沒什麽大偏差就ok;如果答案是多態的,加分。
2.構造方法可以重載嗎?
回答:可以超載,ok;回答構造函數時不能繼承,所以如果要調用指定的父構造函數,必須重寫子類構造函數,獲得加分。
3.抽象方法可以被final,static,native修改嗎?
回答:不能,因為抽象方法必須由子類實現,final方法不能重寫。static是必須由父類實現的方法,native是由本地語言實現的方法。回答封裝和繼承相關的問題,加分。
4.當父類引用指向子類對象時,子類重寫父類方法和屬性,那麽在訪問屬性時,訪問的是誰的屬性?調用方法時,調用誰的方法?
回答:我訪問了父類的屬性,調用了子類的方法,OK;如果能畫圖說明,加分。
5.抽象類和接口的異同?
回答:有的階級定義不壹樣,OK;回答如何在應用過程中根據業務定義接口,加分不少。
最後,如果前面的問題回答正確,會增加兩個編程習慣問題。
1.在妳寫過的代碼中,有沒有寫過兩層以上的循環?妳是怎麽做到的?
回答:沒有,甚至還可以;如果答案是肯定的,聽實現,如果原因說不出來,扣分。
2.在妳寫的代碼中,if語句最多嵌套幾層,最多有幾個分支,是如何實現的?
回答:3層以下,就算可以了;如果回答3級以上,聽聽實現。說不出原因就扣錢。
4、5分支,就算OK;如果回答5個分支以上,聽聽實現。說不出原因就扣錢。
後兩個問題其實都是陷阱,不過是壹種逆向思維,可以了解面試官之前的工作狀態。
如果面試官平日習慣良好,也沒必要擔心。