第一次工作面試,雖然成功了,但是有許多不足的地方,需要反思和改正。
因為時間與距離的原因,兩次面試都是電話面試進行的,第一次面試一個面試官,面試時間將近20分鐘,第二次面試,兩個面試官先后問問題,整個面試將近50分鐘。面試結(jié)果是通過。面試有一段時間了,可能有一些面試問題忘記了,現(xiàn)已入職。
第一次面試:
問的基本上都是Java基礎(chǔ)的知識,簡單的問了些問題,問題大致是一下幾個方面的:
1、Java集合類,ArrayList LinkedList HashMap等 集合類的線程安全問題 底層數(shù)據(jù)結(jié)構(gòu)
數(shù)組和鏈表的使用場景 還問到了HashMap的源碼
2、多線程方面:線程生命周期 線程狀態(tài) 線程池
3、Java內(nèi)存模型 CAS 原子操作 volatile內(nèi)存語義 功能
4、Static final 關(guān)鍵字 類加載機制初始化順序
5、Switch case 擊穿現(xiàn)象等
第二次面試:
問的框架方面和項目方面的問題比較多
1、Java的幾大特性 繼承 封裝 多態(tài) 抽象
2、問使用的框架 spring AOP IOC原理及實現(xiàn)(反射 代理 源碼)
3、設(shè)計模式:單例模式
4、版本控制器Git 基本命令
5、Java多線程方面問的比較多 重排序 結(jié)合多場景問是否發(fā)生重排序 線程池構(gòu)建 線程復(fù)用
6、類鎖 對象鎖 靜態(tài)鎖 結(jié)合多場景提問
7、Volatile synchronized 實現(xiàn)同步的其他方式 ReenTrantLook等
8、類加載機制
9、 JVM內(nèi)存模型 虛擬機棧 本地方法棧 堆 方法區(qū) 程序計數(shù)器 stackoverflowerror異常等
10、 Netty框架+socket 觀察者模式 緩存 通道
11、 網(wǎng)絡(luò)爬蟲 url判重
12、 因為之前寫過一個仿Spring框架,讓我講解實現(xiàn)方式及流程。
13、 Web容器的工作原理
14、 問到反射相關(guān)的問題
總結(jié):
1、千萬不要太緊張,過度的緊張會影響思路,導(dǎo)致該說的,會說的,都說不清楚甚至說不上來;
2、沒有必要問完問題之后馬上就回答,可以組織一下自己的語言,然后在回答,回答問題最好有條理,分條分步,這樣顯得思路很清晰,很熟練;
3、講話一定要自信,然后語氣和語速要和平時一樣沉穩(wěn),不要顯得很急促,或者很沉悶;
4、問一個問題,能多說就多說,在短的時間內(nèi),把自己會的東西盡可能多的展示出來,盡量說的有深度,而不是廣度。說的太廣,給人一種飄渺,什么都懂,也只是懂一點的感覺。從是什么,應(yīng)用場景,如何應(yīng)用,原理,底層實現(xiàn)方式,源碼這樣的方式或思路去回答問題;卮鸬挠猩疃龋妥屆嬖嚬儆X得這個人很行,研究的很透徹;
5、面試中盡量說自己擅長的部分,自己不擅長的方面少說,如果問到的問題確實是你不了解的,可以直接說不清楚或不會,干凈利落的回答下一題,一方面拖拖拉拉的回答,給面試官不好的印象,更致命的是影響自己的心態(tài),甚至影響整個面試過程;
6、如果是電話面試或視頻一定要找一個自己熟悉的,安靜的環(huán)境。
建議:
1、建議大家有時間多看一些源碼,這樣面試的時候,結(jié)合源碼講解回答問題,就很有說服力,經(jīng)常研究源碼的人,編碼風(fēng)格和習(xí)慣肯定都不錯的,思路和設(shè)計上有突出的見解,這讓面試官很放心;
2、平時學(xué)習(xí)的時候一定要不停的鉆研,直到底層實現(xiàn),掌握原理,設(shè)計方式等;
3、可以多參加互聯(lián)網(wǎng)級別的講座,面試模擬等活動,了解動態(tài),平時多練兵,打仗才不慫;
4、平時要多總結(jié),多思考,最好形成文檔,當(dāng)進入公司之后就會發(fā)現(xiàn),沒有文檔就什么都做不了。