一、面試整體事項
1、簡歷要準備好,聯(lián)系方式一定要正確清晰醒目,項目經(jīng)歷按照時間倒序闡述,注意描述自己在項目中承擔的職責,簡歷的模板盡量選擇簡潔的,畢竟程序員大部分還是喜歡簡單明了的。
2、推薦boss直聘,我覺得很好用(不是廣告)。
3、一般的整體面試流程都是電面》現(xiàn)場面》HR面》等著。
4、不要覺得HR讓你回去等消息就是GG了,他們也要跟你之前的面試官討論,再向領(lǐng)導匯報,如果說不急可能還要和其他候選人比較,所以HR讓你回去等消息絕不是說明你完蛋了。
5、面試前準備好自我介紹,1分鐘左右就可以,最好寫在紙上,電面可以照著念,等你到現(xiàn)場面試基本也能背下來自我介紹了。
6、準備好扎實的基礎(chǔ),這是一切的根源,沒實力怎么都沒用的。
7、面試中你可以把你的面試官往你會的知識上引導(我遇到過你會什么他不問什么的)。
8、遇到了設計類題目不要著急,面試官不是為了讓你幾分鐘設計一個高并發(fā)高可用設計模式完美的架構(gòu),只是想看看你的思路,看看你應變的能力,然后給你些提示看看你能否迅速的調(diào)整。
9、offer都會有的,不要著急,把面試當成一個交流的過程。
二、需要準備的知識
以下為在近期面試中比較有印象的問題,也就不分公司了,因為沒什么意義,大致分類記錄一下,目前只想起這么多,不過一定要知道這些問題只是冰山一角,就算都會了也不能怎么樣,最最重要的,還是堅實的基礎(chǔ),清醒的頭腦。
Java基礎(chǔ)
1、HashMap的源碼,實現(xiàn)原理,JDK8中對HashMap做了怎樣的優(yōu)化。
2、HaspMap擴容是怎樣擴容的,為什么都是2的N次冪的大小。
3、HashMap,HashTable,ConcurrentHashMap的區(qū)別。
4、極高并發(fā)下HashTable和ConcurrentHashMap哪個性能更好,為什么,如何實現(xiàn)的。
5、HashMap在高并發(fā)下如果沒有處理線程安全會有怎樣的安全隱患,具體表現(xiàn)是什么。
6、java中四種修飾符的限制范圍。
7、Object類中的方法。
8、接口和抽象類的區(qū)別,注意JDK8的接口可以有實現(xiàn)。
9、動態(tài)代理的兩種方式,以及區(qū)別。
10、Java序列化的方式。
11、傳值和傳引用的區(qū)別,Java是怎么樣的,有沒有傳值引用。
12、一個ArrayList在循環(huán)過程中刪除,會不會出問題,為什么。
13、@transactional注解在什么情況下會失效,為什么。
數(shù)據(jù)結(jié)構(gòu)和算法
1、B+樹
2、快速排序,堆排序,插入排序(其實八大排序算法都應該了解
3、一致性Hash算法,一致性Hash算法的應用
JVM
1、JVM的內(nèi)存結(jié)構(gòu)。
2、JVM方法棧的工作過程,方法棧和本地方法棧有什么區(qū)別。
3、JVM的棧中引用如何和堆中的對象產(chǎn)生關(guān)聯(lián)。
4、可以了解一下逃逸分析技術(shù)。
5、GC的常見算法,CMS以及G1的垃圾回收過程,CMS的各個階段哪兩個是Stop the world的,CMS會不會產(chǎn)生碎片,G1的優(yōu)勢。
6、標記清除和標記整理算法的理解以及優(yōu)缺點。
7、eden survivor區(qū)的比例,為什么是這個比例,eden survivor的工作過程。
8、JVM如何判斷一個對象是否該被GC,可以視為root的都有哪幾種類型。
9、強軟弱虛引用的區(qū)別以及GC對他們執(zhí)行怎樣的操作。
10、Java是否可以GC直接內(nèi)存。
11、Java類加載的過程。
12、雙親委派模型的過程以及優(yōu)勢。
13、常用的JVM調(diào)優(yōu)參數(shù)。
14、dump文件的分析。
15、Java有沒有主動觸發(fā)GC的方式(沒有)。
多線程
1、Java實現(xiàn)多線程有哪幾種方式。
2、Callable和Future的了解。
3、線程池的參數(shù)有哪些,在線程池創(chuàng)建一個線程的過程。
4、volitile關(guān)鍵字的作用,原理。
5、synchronized關(guān)鍵字的用法,優(yōu)缺點。
6、Lock接口有哪些實現(xiàn)類,使用場景是什么。
7、可重入鎖的用處及實現(xiàn)原理,寫時復制的過程,讀寫鎖,分段鎖(ConcurrentHashMap中的segment)。
8、悲觀鎖,樂觀鎖,優(yōu)缺點,CAS有什么缺陷,該如何解決。
9、ABC三個線程如何保證順序執(zhí)行。
10、線程的狀態(tài)都有哪些。
11、sleep和wait的區(qū)別。
12、notify和notifyall的區(qū)別。
13、ThreadLocal的了解,實現(xiàn)原理。
數(shù)據(jù)庫相關(guān)
常見的數(shù)據(jù)庫優(yōu)化手段索引的優(yōu)缺點,什么字段上建立索引數(shù)據(jù)庫連接池。durid的常用配置。
計算機網(wǎng)絡
TCP,UDP區(qū)別。三次握手,四次揮手,為什么要四次揮手。長連接和短連接。連接池適合長連接還是短連接。
設計模式
觀察者模式代理模式單例模式,有五種寫法,可以參考文章單例模式的五種實現(xiàn)方式可以考Spring中使用了哪些設計模式
分布式相關(guān)
分布式事務的控制。分布式鎖如何設計。分布式session如何設計。dubbo的組件有哪些,各有什么作用。zookeeper的負載均衡算法有哪些。dubbo是如何利用接口就可以通信的。
緩存相關(guān)
redis和memcached的區(qū)別。redis支持哪些數(shù)據(jù)結(jié)構(gòu)。redis是單線程的么,所有的工作都是單線程么。redis如何存儲一個String的。redis的部署方式,主從,集群。redis的哨兵模式,一個key值如何在redis集群中找到存儲在哪里。redis持久化策略。
框架相關(guān)
SpringMVC的Controller是如何將參數(shù)和前端傳來的數(shù)據(jù)一一對應的。Mybatis如何找到指定的Mapper的,如何完成查詢的。Quartz是如何完成定時任務的。自定義注解的實現(xiàn)。Spring使用了哪些設計模式。Spring的IOC有什么優(yōu)勢。Spring如何維護它擁有的bean。一些較新的東西JDK8的新特性,流的概念及優(yōu)勢,為什么有這種優(yōu)勢。區(qū)塊鏈了解如何設計雙11交易總額面板,要做到高并發(fā)高可用
一些小建議
可以去leetcode上刷題換換思路。八大排序算法一定要手敲一遍(快排,堆排尤其重要)。了解一些新興的技術(shù)。面試之后面試官都會問你有沒有什么問題,千萬不要沒問題,也別傻乎乎的問一些敏感問題。了解你要面試的公司的產(chǎn)品及競爭產(chǎn)品。
總結(jié)
無論是哪家公司,都很重視高并發(fā)高可用的技術(shù),重視基礎(chǔ),重視JVM。面試是一個雙向選擇的過程,不要抱著畏懼的心態(tài)去面試,不利于自己的發(fā)揮。同時看中的應該不止薪資,還要看你是不是真的喜歡這家公司,是不是能真的得到鍛煉。其實我寫了這么多,只是我自己的總結(jié),并不一定適用于所有人,相信經(jīng)過一些面試,大家都會有這些感觸。如果這些文字能夠幫到你,那就最好了,幫不到就當是我自己的一個記錄。最后,希望大家都能找到適合自己的公司,開開心心的擼代碼。
-
工程師
+關(guān)注
關(guān)注
59文章
1590瀏覽量
69510 -
JAVA
+關(guān)注
關(guān)注
20文章
2989瀏覽量
109987
發(fā)布評論請先 登錄
老工程師分享的模電設計經(jīng)驗
如何成為一名嵌入式軟件工程師?
長沙怎么這么難招硬件工程師呀

一位老電子工程師的十年職場感悟

電子工程師的電源設計經(jīng)驗分享
電子工程師的PCB設計經(jīng)驗
電子工程師的電源設計經(jīng)驗
電子工程師的電路設計經(jīng)驗分享
電子工程師的經(jīng)驗分享
【面試題】人工智能工程師高頻面試題匯總:機器學習深化篇(題目+答案)

【面試題】人工智能工程師高頻面試題匯總:Transformer篇(題目+答案)

人工智能工程師高頻面試題匯總——機器學習篇


評論