2020年高級(jí)Java工程師面試題寶典,在面試時(shí),應(yīng)當(dāng)綜合準(zhǔn)備java Core,數(shù)據(jù)庫,框架,分布式等方面的題目。我發(fā)現(xiàn)不少面試者走了彎路,他們或者干脆不準(zhǔn)備,準(zhǔn)備時(shí)可能方法不到位,單準(zhǔn)備一個(gè)方面。比如只準(zhǔn)備了算法題,在這方面回答很好,但其它方面就一無所知了。
所以說,沒有所謂的一定能成功的面試秘籍,但有可以幫助提升成功率的準(zhǔn)備方法。
切記,面試前一定得準(zhǔn)備,否則成功的可能性很低,準(zhǔn)備時(shí),得綜合看各方面的點(diǎn)。至于每個(gè)點(diǎn)要到什么程度,后文會(huì)講到。
架構(gòu)方面需要準(zhǔn)備的點(diǎn)
熟悉SSM架構(gòu),至少在項(xiàng)目里
Spring Bean的周期
最好能通過閱讀源代碼,說下IOC,AOP以及Spring MVC的工作流程
最好能結(jié)合反射,說下IOC等的實(shí)現(xiàn)原理
Spring Boot和Spring Cloud的一些知識(shí)點(diǎn)
數(shù)據(jù)庫方面需要準(zhǔn)備的點(diǎn)
不少候選人會(huì)看很多SQL的技巧,比如select該怎么寫,insert又該怎么寫,但僅限于此,不會(huì)再準(zhǔn)備其它的。
這樣就很吃虧,因?yàn)槊嬖嚬贂?huì)認(rèn)為,哪怕是初級(jí)開發(fā),SQL語句也該會(huì)寫,所以這塊不會(huì)多問,而會(huì)問如下方面的問題。
索引怎么建的,怎么用的?比如我建好了一個(gè)索引,在where語句里寫name like'123%'會(huì)不會(huì)走索引,怎么情況下不該建索引,哪些語句不會(huì)走索引。
除了索引之外,你有過哪些SQL優(yōu)化方面的經(jīng)驗(yàn),比如分庫分表,或通過執(zhí)行計(jì)劃查看SQL的優(yōu)化點(diǎn)。這最好是能結(jié)合你做的項(xiàng)目實(shí)際來講。
這里,大概有70%的面試者只知道基本SQL的寫法,所以哪怕你是只有理論經(jīng)驗(yàn),會(huì)說一些優(yōu)化點(diǎn),也是非常有利的。
這塊對(duì)于高級(jí)開發(fā)而言,更得了解優(yōu)化方面的技能。
集合方面
Set如何實(shí)現(xiàn)防重的,比如TreeSet和HashSet等。
Collection的一些方法,比如比較方法,包裝成線程安全的方法等。
可能有些面試官會(huì)問,如何通過ArrayList實(shí)現(xiàn)隊(duì)列或堆棧,這個(gè)可以準(zhǔn)備下。
多線程方面
其實(shí)在項(xiàng)目里不怎么會(huì)用到,但會(huì)問如下的問題:
synchronized和可重入鎖的差別,然后可能會(huì)順便問下信號(hào)量等防并發(fā)的機(jī)制。
在線程里該如何返回值,其實(shí)就是callable runnable區(qū)別。
一定得通過ThreadLocal或volatile關(guān)鍵字,來說明線程的內(nèi)存模型。
線程池方面,會(huì)用,了解些常用參數(shù)
線程方面,可能問得比較多的就是并發(fā)機(jī)制,高級(jí)開發(fā),會(huì)問得很深
架構(gòu)方面
能證明自己可以干活(這不難),同時(shí)能結(jié)合底層代碼說出IOC,AOP或SpringMVC的流程,只要能說出一個(gè)即可?;蛘吣苷f出攔截器,Controller等的高級(jí)用法。
能證明自己有Spring Boot或Spring Cloud的經(jīng)驗(yàn),比如能說出些Spring Cloud組件的用法。
如果能證明自己有分布式開發(fā)的經(jīng)驗(yàn),那最好了,其實(shí)這不難證明,比如能說出服務(wù)的包是放在多臺(tái)機(jī)器上(大多數(shù)公司其實(shí)都這樣),而且能說出如何部署,如何通過nginx等做到負(fù)載均衡。
以上就是天津卓眾教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“2020年高級(jí)Java工程師面試題寶典”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Java面試題