更新時間:2019-10-06 09:00:00 來源:動力節(jié)點(diǎn) 瀏覽3090次
中級java工程師,要有扎實(shí)的java基礎(chǔ)和面向?qū)ο缶幊袒A(chǔ),對jdk中的基礎(chǔ)類有一定的使用積累和理解;并且在業(yè)務(wù)方面,可以擔(dān)任一些模塊的獨(dú)立開發(fā)。
根據(jù)上述兩個必要條件進(jìn)行篩選,在技術(shù)方面,作為面試官會問以下問題:
面向?qū)ο缶幊袒A(chǔ)
1簡述一下面向?qū)ο?/span>的三大特征?
回答:根據(jù)一些小例子描述封裝,繼承,多態(tài),ok;通過自己開發(fā)的代碼說明封裝,繼承,多態(tài)(重點(diǎn)),加分。
舉例:我們項(xiàng)目的用戶體系很大,而我負(fù)責(zé)開發(fā)其中一種用戶類型,這種用戶類型是在原有的用戶上追加了XX屬性,所以選擇了繼承原有用戶的模型......
2.簡述對開閉原則的理解?(其實(shí)有5大原則,而開閉原則相對比較被大家熟悉)
回答:開放擴(kuò)展,關(guān)閉修改,OK;如果結(jié)合自己的代碼說明,加分
PS:一般情況下,開閉原則的思想使用在設(shè)計(jì)最初預(yù)見到功能的擴(kuò)展性的時候,或者第一次需要擴(kuò)展某一項(xiàng)功能而對原有代碼進(jìn)行重構(gòu)的時候。如果面試者回答出相關(guān)的,說明可能是有相關(guān)設(shè)計(jì)經(jīng)驗(yàn)的。
3.類和對象的關(guān)系?
回答:類可以看做是對象的一個模板,對象是類在實(shí)際運(yùn)行時的表象,類似這種意思都OK;從jvm內(nèi)存角度分析從類創(chuàng)建出對象的過程,加分(這個屬于高級開發(fā)部分)
java基礎(chǔ)和jdk常用類使用
1.你在項(xiàng)目中使用過的集合有哪些?
回答:ArrayList,linkedList,HashSet,HashMap就OK;如果分類回答出Collection的子類和Map的子類,加分;如果回答出ArrayList,LinkedList,Vector的區(qū)別,加分;如果回答出HashSet,LinkedHashSet,TreeSet的區(qū)別,加分;如果回答出Queue,加分;如果回答出HashMap,HashTable,TreeMap的區(qū)別,加分
PS:有時候也會直接提問使用過的Collection的子類,這時請不要回答Map相關(guān)的子類
2.java中的異常分為哪幾類?
回答:CheckedException和UncheckedException,OK;說出它們的區(qū)別,并列舉出常用的CheckedException,加分;
追加提問:你在項(xiàng)目中如何使用Uncheckedexception?(陷阱題)
回答:在項(xiàng)目中,不直接拋出Uncheckedexception,而是將Uncheckedexception包裝成業(yè)務(wù)異常(CheckedException)再拋出,OK;如果描述如何拋出Uncheckedexception,但是不能說明在什么情況下進(jìn)行處理時,扣分
3.有5個String類型的變量,想要直接拼接起來成為一個字符串,是使用+號拼接,還是使用其他方式?(陷阱題)
回答:使用+號拼接,OK;能直接說明StringBuilder和StringBuffer,并且解釋不適用題目情況的理由,加分
看面試者的回答追加提問:為什么使用/不使用StringBuilder或者StringBuffer?
回答:直接拼接現(xiàn)有字符串,使用+號直接拼接并不存在內(nèi)存浪費(fèi),而StringBuilder和StringBuffer在執(zhí)行效率上比+號拼接要差。
4.簡述一下hashcode的作用?
回答:int類型的對象的散列碼,是為了更好的支持基于哈希機(jī)制的Java集合類,例如Hashtable,HashMap,HashSet,意思描述正確就OK;和equals的使用做比較,重寫equals必須重寫hashcode。equals返回true,hashcode一定返回true;而hashcode一定返回true,equals不一定返回true。加分。
5.什么時候使用finally關(guān)鍵字?
回答:try...catch后書寫finally代碼塊,finally代碼塊一般是用于釋放try代碼塊中使用的資源,OK;回答出代碼塊調(diào)用順序,加分。
設(shè)計(jì)模式
(對于中級java工程師來說,單例和工廠模式是最為常用的,也許他們在不知不覺中一直在使用,但是如果可以描述清楚的話,那么更好)
1.描述或者寫出一個你在項(xiàng)目中編寫的單例模式的類
回答:描述清楚或者寫清楚了,ok;能回答出多種單例模式方案和比較的,加分
2.描述或者寫出一個你在項(xiàng)目中編寫的工廠模式的類
回答:工廠模式有多種,描述一種就OK:能回答多種工廠模式的并且思路清晰的,加分
Spring相關(guān)
(99%Java面試者的簡歷中都會寫熟悉Spring框架。但是真要提問概念性的東西,IOC、AOP等等,最多就是背一個概念,所以Spring提問的出發(fā)點(diǎn)還是中級工程師平時用到的一些基礎(chǔ)性的東西)
1.描述一下如何使用@Autowired注解和@Qualifier注解
回答:@Autowired是Spring在任意粒度進(jìn)行自動裝配控制的注解,@Qualifier是在自動裝配多個同源實(shí)現(xiàn)時,指定唯一實(shí)現(xiàn)使用的注解,意思對就OK;結(jié)合項(xiàng)目說明使用方式,加分。
2.Spring的配置方式有哪些?
回答:XML配置,注解配置,java代碼配置,OK;說明區(qū)別,加分
追加提問:舉例java代碼配置?
回答:使用@Configuration和@Bean注解,OK;使用過@Condition系列,@Import等等注解,加分
中級java工程師階段是工程師中基數(shù)最大的人群,基礎(chǔ)參差不齊,選拔定位都比較困難,所以問題的廣度也很大。中級java工程師的面試中,除了上面的一些技術(shù)問題外,結(jié)合簡歷中的項(xiàng)目經(jīng)驗(yàn)的提問也很多,但是這個就無法總結(jié)了,需要根據(jù)實(shí)際情況提問和回答。
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“面試官會問中級Java工程師哪些問題?”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743