java突击面试章程
【春招】————java突擊面試章程
1.0 知乎總結(jié)
- 請問如何短時間突擊 Java 通過面試?我畢業(yè)了做java 工作經(jīng)驗一年 目前打算離職 可是感覺這一年基本沒學到什么 害怕知識儲備不夠 不能通過面試 求教
- 20+互聯(lián)網(wǎng)公司面試總結(jié)(Java方向)
- 最近面試Java后端開發(fā)的感受
- 你遇到過哪些質(zhì)量很高的 Java 面試?
- 史上最全的Java面試知識點總結(jié)
- Java面試題及答案整理(2020最新版)
- 談談面試Java后端開發(fā)人員的感受
2.0 知識點總結(jié)
最近面試java后端開發(fā)的感受,如果就以平時項目來面試,通過估計很難————再論面試前的準備。
? 在上周,我密集面試了若干Java后端的候選人,工作經(jīng)驗在3到5年間,我的標準其實不復雜;第一能干活;第二java基礎要好,第三最好熟悉些分布式框架,我相信其他公司招初級開發(fā)時,應該也照這個標準來面。
? 我也知道,不少候選人能力其實不差,但面試是沒有準備或不會說,這樣的人可能在進團隊干活確實達到期望,但可能無法通過面試,但面試官總是只根據(jù)面試情況來判斷。
? 但是現(xiàn)實情況,大多人可能面試前沒準備,或準備方法不得當,要知道,我們平時干活更偏重于業(yè)務,不可能大量接觸到算法,數(shù)據(jù)結(jié)構(gòu),底層代碼這類面試必問的問題點,換句話來說,面試準備點和平時工作點匹配度很小。
3.0 沖刺部分
作為面試官,我只能根據(jù)候選人的回答來決定面試結(jié)果。不過,與人方便自己方便,所以我在文本里,將通過一些常見的問題來介紹面試的準備技巧,大家在看到之后一定會感嘆:只要方法得當,準備面試第一不難,第二用的時間不會太多。
而且在本人的兩本書里,java Web輕量級開發(fā)面試教程和java核心技術以及面試指南
詳細地給出了其他相關面試技巧。
框架部分
項目部分
分布式中間件
別單純的看單機版的框架,適當了解分布式。從外,在描述項目里的框架技術時,最好你再帶分布式的技術,下面我列舉大家可以準備的分布式技術。
以上僅僅是用三個組件舉例,大家還可以看下Redis緩存,日志框架,MyCAT分庫分表等。準備的方式有兩大類,第一類是要說怎么用,這比較簡單,能通過配置文件搭建成一個功能框架即可,第二個是可以適當讀寫底層代碼,以此了解下協(xié)議,集群和失效轉(zhuǎn)移之類的高級知識點。
如果能在面試中看看而談分布式組件的底層,那么得到的評價就會比較好了,比如“深入了解框架底層”,或“框架經(jīng)驗豐富”,這樣,面試架構(gòu)師也行,更何況是高級開發(fā)。
數(shù)據(jù)庫方面
數(shù)據(jù)庫方面,就知道增刪改查,還要了解性能優(yōu)化
在實際項目里,大多數(shù)程序員用得到的可能僅僅是增刪改查,當我們用Mybatis時這個情況更普遍,不過你面試時也是這樣,估計你的能力和其他競爭者差不多了。
這個方面你可以準備如下技能。
哪怕你在前三點表現(xiàn)一般,那么至少可以超越將近一般的候選人,尤其你在SQL優(yōu)化表現(xiàn)非常好,那么你在面試高級開發(fā)時,數(shù)據(jù)庫層面一定是達標的,如果你連第四點也回答也回答非常好,那么恭喜你,你在數(shù)據(jù)庫方面的能力甚至達到了初級架構(gòu)師的級別。
java核心方面
圍繞數(shù)據(jù)結(jié)構(gòu)和性能優(yōu)化準備面試題
java核心這塊,網(wǎng)上的面試題很多,不過在此之外,大家還應著重關注集合(即數(shù)據(jù)結(jié)構(gòu))和多線程并發(fā)這塊,在此基礎上,大家可以準備些設計模式和虛擬機的說辭。
下面我一般會問的部分問題,java核心這塊,網(wǎng)上的面試題很多,不過在此之外,大家還應當著重關注集合(即數(shù)據(jù)結(jié)構(gòu))和多線程并發(fā)這兩塊,在此基礎上,大家可以準備一些設計模式和虛擬機的說辭。
下面列些我一般會問的部分問題
通過上訴的問題點,我其實不僅僅停留在“會用”級別,比如我不會問,如何在ArrayList里放元素。大家可以看到,上述問題包含了“多線程并發(fā)”,“JVM優(yōu)化”,“數(shù)據(jù)結(jié)構(gòu)底層代碼”等細節(jié),大家也可以舉一反三,通過看一些高級知識,多準備些其他類似面試。
? 我們知道,目前java開發(fā)是以web框架為主,那么為什么還要問“java核心知識點”這個我是有切身體會的。之前在我團隊里,我見過兩個人,一個是就會干活,具體表現(xiàn)是會用java核心基本的API,而且也沒有深入了解的意愿(估計不知道該怎么深入了解),另外一位平時專門會看些java并發(fā),虛擬機等的高級知識,過了半年以后,后者的能力快速升級到高級開發(fā),由于平時對java核心知識點連接很透徹,所以看一些分布式組件的底層實現(xiàn)沒有什么大問題,而前者,一直在重復勞動,能力也一直停留會“干活”的層面。
? 而在現(xiàn)實里面的面試,如果不熟悉java核心知識點,估計升高高級開發(fā)都難,更別說是面試架構(gòu)師級別的崗位了。
Linux方面
至少了解如何查看日志排查問題。如果候選人能證明自己有“排查問題”和解決問題能力,這絕對是一個加分項。但是如何證明。
目前多數(shù)的互聯(lián)項目,都是部署在linux上,也就是說,日志都是在linux,下面歸納一些實際的linux操作。
當然,還有更多實用的linux命令。但在實際面試過程中,不少候選人連一條linux命令也不知道,還是這句話,你哪怕知道這些很基礎的,也比一般人強了許多。
閱讀底層代碼
如何證明自己對一個知識點非常理解?莫過于能通過底層代碼來說明,我在和不少經(jīng)驗在5年,之內(nèi)的程序員溝通時,不少人認為這很難,確實,如果要通過閱讀底層代碼了解分布式組件,那難度不小,但如果如下部分的底層代碼,并不難懂。
其實準備的底層代碼未必很多,而且也不限于哪個方面,比如集合里基于紅黑樹的TreeSet,基于NIO的開源框架,基于分布式組件的Dubbo,都可以準備。而且準備時未必要背出所有的底層(實時上很難做到),你只要能結(jié)合一些重要的類和方法,講清楚思路即可(比如講清楚HashMap如何通過hashCode快速定位)
那么在面試時,如何找到一個好機會說出你準備好的上述底層代碼?那么最少能得到“肯積極專研”的評價,如果描述清楚,那么評價可能就會升級到“熟悉java核心技能(或Spring MVC 且基本功扎實)”。要知道,很少有人能講清楚底層代碼,所有你拋出了這個話題,哪怕最后沒達到預期效果,面試官也不會由此對你降低評價,所以說,準備這塊絕對是“有百利而無一害”的掙錢買賣
技術落地項目中
在面試過程中,我經(jīng)常會聽到一些比較遺憾的回答,比如候選人對SQL優(yōu)化技能講的頭頭是道,但最后得知,這是他平時自學時掌握,并沒有用在實際項目中。
當然這總比不說要好,所有我會寫下“在平時自學過SQL優(yōu)化技能”,但是在項目里實踐過,那么我就會寫下“有實際數(shù)據(jù)庫SQL優(yōu)化的技能”。大家可以對比兩者的差別,一個是篇重理論,一個是直接能干活,其實很多場景里,我就不信在實際項目里一定沒有實踐過SQL優(yōu)化技能。
從這個案例中,我想告訴大家的是,你之前費了千辛萬苦(其實方法方向得到,也不要費太大精力)準備的很多技能和說辭,最后應該落實到你的實際項目里。
比如你有過在Linux日志里查詢關鍵字排查問題的經(jīng)驗,在描述時你可以帶一句,在之前的項目里我就是這么干的。又如,你通過看底層代碼。了解TreeSet和HashSet的差別以及它們的適用范圍,那么你就可以回想你在之前做的項目,是否有個場景適用于TreeSet?如果有,那么你就可以適當描述一下項目需求,然后說,通過閱讀底層代碼,我了解兩者的差別,而且在這個實際需求里,我就用了TreeSet,而且我還專門做了對比性實驗,發(fā)現(xiàn)用TreeSet比HashSet要高xx個百分點
? 請記住,“實踐經(jīng)驗”,一定比“理論經(jīng)驗”值錢,而且大多數(shù)你知道的理論上的經(jīng)驗,一定在你的項目里用過,所以,如果你僅僅讓面試官感覺你只有“理論經(jīng)驗”,那就太虧了。
面試方法
歸納項目里面的亮點,也許你的能力沒有別人那么出眾,歸納能力也許會讓你在眾人面前出眾,這篇文章轉(zhuǎn)載自博客園的一位博主,他還寫了兩本面試書籍。
本文歡迎轉(zhuǎn)載,不過請注明文章來源,請同時給出本人寫的兩本書的連接Java Web輕量級開發(fā)面試教程和Java核心技術及面試指南。
?
總結(jié)
以上是生活随笔為你收集整理的java突击面试章程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 后台一直执行的sh
- 下一篇: 技术分类目录