日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

如何准备Java初级和高级技术的面试呢?

發(fā)布時(shí)間:2024/7/23 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何准备Java初级和高级技术的面试呢? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

IT行業(yè)的崛起帶動(dòng)了一大批的新興職業(yè),Java數(shù)據(jù)開發(fā)就是其中之一,作為IT行業(yè)的剛需職位,企業(yè)對合格的Java開發(fā)人員求賢若渴, 在各大主流招聘平臺上, Java相關(guān)職位數(shù)量一直名列前茅,那么我們?nèi)绾螠?zhǔn)備Java初級和高級技術(shù)的面試呢?

一. 換位思考下,如果你面試官,你會(huì)怎么做

1. 只能通過簡歷和面試來衡量,別無他法。如果某位大牛確認(rèn)能力很行,但面試時(shí)無法充分地自證能力,那對不起了,過不了,現(xiàn)實(shí)就這樣。

2. 如果面試官由于能力不行,招進(jìn)來一個(gè)大忽悠,那估計(jì)會(huì)被領(lǐng)導(dǎo)罵。而且再也不會(huì)被讓面試了,給領(lǐng)導(dǎo)的印象就不好了。所以不能評主觀印象,而是會(huì)有些客觀標(biāo)準(zhǔn),具體而言,就是從多個(gè)方面問些題目,答好答壞就看候選人的。

其實(shí)一些題目都差不多,但不同能力的面試官問問題的切入點(diǎn)和漸進(jìn)程度會(huì)不同,而且有經(jīng)驗(yàn)的面試官會(huì)挖掘候選人的優(yōu)勢,并能從候選人的說辭中判斷候選人是真懂還是忽悠。

二. 總體上說下準(zhǔn)備面試的幾個(gè)方面點(diǎn)

記得之前考政治,某個(gè)大題10分,分5個(gè)點(diǎn),每個(gè)點(diǎn)的標(biāo)準(zhǔn)答案不多,也就一兩句話。比較取巧的做法是,涵蓋點(diǎn)要全,每個(gè)點(diǎn)無需多說,但要說到點(diǎn)子上。相反,如果在某個(gè)點(diǎn)做得再多,其它點(diǎn)沒覆蓋到,只能拿這個(gè)點(diǎn)的分。

同理,在面試時(shí),應(yīng)當(dāng)綜合準(zhǔn)備 java Core,數(shù)據(jù)庫,框架,分布式等方面的題目。根據(jù)我面試的結(jié)果,我發(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)

初級開發(fā)而言,需要讓面試官感覺出如下的要點(diǎn)。

1. 熟悉SSM架構(gòu),至少在項(xiàng)目里做過。

這個(gè)的說法是,介紹項(xiàng)目時(shí),用一個(gè)業(yè)務(wù)流程來說spring mvc如何做的。

2. 知道Spring MVC中的細(xì)節(jié),比如@Autowired的用法,如何把url映射到Controller上,ModelAndView對象返回的方式等。

3. 最好結(jié)合項(xiàng)目的用法,說下你是怎么用AOP,攔截器的,比如說可以通過攔截器攔截非法請求,怎么用 AOP輸出日志等。

4. 關(guān)于ORM方面,不限用過哪種,但得知道一對一,一多多,多對多等的用法,以及cascade和inverse的用法。

5. 最好知道聲明式事務(wù)的做法。

如果你要應(yīng)聘高級開發(fā),那在上述基礎(chǔ)上,最好了解如下的知識點(diǎn):

Spring Bean的周期

最好能通過閱讀源代碼,說下IOC,AOP以及Spring MVC的工作流程

最好能結(jié)合反射,說下IOC等的實(shí)現(xiàn)原理

Spring Boot和Spring Cloud的一些知識點(diǎn)

四. 數(shù)據(jù)庫方面需要準(zhǔn)備的點(diǎn)

不少候選人會(huì)看很多SQL的技巧,比如select該怎么寫,insert又該怎么寫,但僅限于此,不會(huì)再準(zhǔn)備其它的。

這樣就很吃虧,因?yàn)槊嬖嚬贂?huì)認(rèn)為,哪怕是初級開發(fā),SQL語句也該會(huì)寫,所以這塊不會(huì)多問,而會(huì)問如下方面的問題。

1. 索引怎么建的,怎么用的?比如我建好了一個(gè)索引,在where 語句里寫 name like '123%'會(huì)不會(huì)走索引,怎么情況下不該建索引,哪些語句不會(huì)走索引。

2. 除了索引之外,你有過哪些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),也是非常有利的。

這塊對于高級開發(fā)而言,更得了解優(yōu)化方面的技能。

五. Java Core方面需要準(zhǔn)備的點(diǎn)

這塊是基礎(chǔ),其實(shí)很多問的問題,候選人一定會(huì)在項(xiàng)目里用到,但很少能說好說全。

這塊主要會(huì)從集合,多線程,異常處理流程以及JVM虛擬機(jī)這些方面來問。

集合方面

1. hashcode有沒有重寫過?在什么場景下需要重寫。如果可以,結(jié)合hash表的算法,說下hashmap的實(shí)現(xiàn)原理。

對于高級開發(fā)而言,最好通過ConcurrentHashMap來說明下并發(fā)方面的底層實(shí)現(xiàn)代碼。

2. ArrayList,LinkedList的差別,比如一個(gè)基于數(shù)組,一個(gè)基于鏈表,它們均是線程不安全的,ArrayList的擴(kuò)容做法等。

對于高級而言,最好看下底層的代碼。

3. Set如何實(shí)現(xiàn)防重的,比如TreeSet和HashSet等。

4. Collection的一些方法,比如比較方法,包裝成線程安全的方法等。

5. 可能有些面試官會(huì)問,如何通過ArrayList實(shí)現(xiàn)隊(duì)列或堆棧,這個(gè)可以準(zhǔn)備下。

多線程方面

其實(shí)在項(xiàng)目里不怎么會(huì)用到,但會(huì)問如下的問題:

1. synchronized和可重入鎖的差別,然后可能會(huì)順便問下信號量等防并發(fā)的機(jī)制。

2. 在線程里該如何返回值,其實(shí)就是callable runnable 區(qū)別。

3. 一定得通過ThreadLocal或volatile關(guān)鍵字,來說明線程的內(nèi)存模型。

4. 線程池方面,會(huì)用,了解些常用參數(shù)

線程方面,可能問得比較多的就是并發(fā)機(jī)制,如果是高級開發(fā),可能會(huì)問得深些。

虛擬機(jī)方面

1. 結(jié)構(gòu)圖和流程可以大致說下。

2. 一定得了解針對堆的垃圾回收機(jī)制,具體而言,可以畫個(gè)圖,說下年輕代年老代等。

3. 說下垃圾回收的流程,然后針對性地說下如何在代碼中優(yōu)化內(nèi)存性能。

4. 最好說下如果出現(xiàn)了OOM異常,該怎么排查?如何看Dump文件。

5. GC的一些概念,比如強(qiáng)弱軟引用,finalize方法等,這些可以準(zhǔn)備下。

六. 算法,設(shè)計(jì)模式等,其實(shí)是虛的

這塊好準(zhǔn)備,不過話說哪怕這些沒回答好,但能證明有相關(guān)技能的項(xiàng)目經(jīng)驗(yàn),一般也會(huì)讓過。

不過在這塊,不少候選人就本末倒置了,比如就準(zhǔn)備算法,設(shè)計(jì)模式,剛才提到的框架,數(shù)據(jù)庫和Java Core方面就不準(zhǔn)備了。這樣很吃虧,就好比考政治只復(fù)習(xí)了一個(gè)點(diǎn),其它一點(diǎn)也不準(zhǔn)備。

七. 我面試的感受&聽到哪類回答就能證明候選人比較資深

1. 大多數(shù)的候選人(大概7成)直接就來了,不做任何準(zhǔn)備。要知道,面試和項(xiàng)目其實(shí)有些脫節(jié),哪怕項(xiàng)目做得再好,不做準(zhǔn)備照樣通不過,只要我確認(rèn)過這類人確實(shí)無法達(dá)標(biāo),我拒掉他們沒任何心理負(fù)擔(dān),誰讓他們不準(zhǔn)備?

2. 還有些候選人態(tài)度很好,明顯準(zhǔn)備過,但沒準(zhǔn)備到位,比如像剛才所說,只準(zhǔn)備了算法,或者在Java Core方面,只看了集合方面的面試題。對于這些同學(xué),哪怕是過了,我也會(huì)感到惋惜,畢竟如果面試好些的話,工資也能更高些,至于哪些過不了的,我敢說,如果他們準(zhǔn)備過,估計(jì)就不是這個(gè)結(jié)果了。

其實(shí)我也知道,人無完人,哪怕我自己去面試,也不可能面面俱到,所以,我不會(huì)要求候選人什么問題都能回答出,甚至大多答錯(cuò)也沒關(guān)系,只要能證明自己的能力即可通過面試。

我也和不少面試官交流過,根據(jù)我們的經(jīng)驗(yàn),如果候選人能說出如下的知識點(diǎn),即能證明他在這個(gè)領(lǐng)域比較資深了,在這塊,我可能就不會(huì)過多地問問題了。

架構(gòu)方面

1. 能證明自己可以干活(這不難),同時(shí)能結(jié)合底層代碼說出IOC,AOP或Spring MVC的流程,只要能說出一個(gè)即可。或者能說出攔截器,Controller等的高級用法。

2. 能證明自己有Spring Boot或Spring Cloud的經(jīng)驗(yàn),比如能說出些Spring Cloud組件的用法。

3. 如果能證明自己有分布式開發(fā)的經(jīng)驗(yàn),那最好了,其實(shí)這不難證明,比如能說出服務(wù)的包是放在多臺機(jī)器上(大多數(shù)公司其實(shí)都這樣),而且能說出如何部署,如何通過nginx等做到負(fù)載均衡。

數(shù)據(jù)庫方面,其實(shí)講清楚一個(gè)問題即可:如何進(jìn)行SQL調(diào)優(yōu),比如通過索引,看執(zhí)行計(jì)劃即可,如果有其它的優(yōu)化點(diǎn),說清楚即可。

Java Core方面

這里給出些訣竅:

1. 能結(jié)合ConcurrentHashMap的源代碼,說出final,volatile,transient的用法,以及在其中如何用Lock對象防止寫并發(fā)。

2. 結(jié)合一個(gè)項(xiàng)目實(shí)際,說下設(shè)計(jì)模式的實(shí)踐。

3. 多線程方面,能說出Lock或volatile等高級知識點(diǎn)的用法。

4. 這塊最取巧:說下GC的流程,以及如何通過日志和Dump文件排查OOM異常,如果再高級些的話,說下如何在代碼中優(yōu)化內(nèi)存代碼。

? ? ? ?為了讓學(xué)習(xí)變得輕松、高效,今天給大家免費(fèi)分享一套Java入門教學(xué)資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要入門的資料歡迎加入學(xué)習(xí)交流群:9285,05736

總結(jié)

以上是生活随笔為你收集整理的如何准备Java初级和高级技术的面试呢?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。