面試整體事項
簡歷要準備好,聯(lián)系方式一定要正確清晰醒目,項目經(jīng)歷按照時間倒序闡述,注意描述自己在項目中承擔的職責离赫,簡歷的模板盡量選擇簡潔的,畢竟程序員大部分還是喜歡簡單明了的塌碌。
推薦boss直聘笆怠,我覺得很好用(不是廣告)。
一般的整體面試流程都是電面->現(xiàn)場面->HR面->等著誊爹。
不要覺得HR說讓你回去等消息就是GG了蹬刷,他們也要跟你之前的面試官討論,再向領導匯報频丘,如果說不急可能還要和其他候選人比較办成,所以HR讓你回去等消息絕對不是說明你完蛋了。
面試前準備好自我介紹搂漠,1分鐘左右就可以迂卢,可以寫在紙上,電面可以照著念桐汤,等你到了現(xiàn)場面了基本也都快背下來你的自我介紹了而克。
準備好扎實的基礎,這是一切的根源怔毛,沒實力怎么都沒用的员萍。
面試中你可以把你的面試官往你會的知識上引導(我遇到過你會什么他不問什么的)。
遇到了設計類題目不要著急拣度,面試官不是為了讓你幾分鐘設計一個高并發(fā)高可用設計模式完美的架構碎绎,只是想看看你的思路,看看你應變的能力抗果,然后給你些提示看看你能否迅速的調整筋帖。
offer都會有的,不要著急冤馏,把面試當成一個交流的過程日麸。
需要準備的知識
以下為在近期面試中比較有印象的問題,也就不分公司了逮光,因為沒什么意義代箭,大致分類記錄一下辕录,目前只想起這么多,不過一定要知道這些問題只是冰山一角梢卸,就算都會了也不能怎么樣走诞,最最重要的,還是堅實的基礎蛤高,清醒的頭腦蚣旱。
Java基礎
HashMap的源碼,實現(xiàn)原理戴陡,JDK8中對HashMap做了怎樣的優(yōu)化塞绿。
HaspMap擴容是怎樣擴容的,為什么都是2的N次冪的大小恤批。
HashMap异吻,HashTable,ConcurrentHashMap的區(qū)別喜庞。
極高并發(fā)下HashTable和ConcurrentHashMap哪個性能更好诀浪,為什么,如何實現(xiàn)的延都。
HashMap在高并發(fā)下如果沒有處理線程安全會有怎樣的安全隱患雷猪,具體表現(xiàn)是什么。
接口和抽象類的區(qū)別,注意JDK8的接口可以有實現(xiàn)殊者。
Java序列化的方式猖吴。
傳值和傳引用的區(qū)別摔刁,Java是怎么樣的,有沒有傳值引用距误。
一個ArrayList在循環(huán)過程中刪除簸搞,會不會出問題扁位,為什么准潭。
@transactional注解在什么情況下會失效,為什么域仇。
數(shù)據(jù)結構和算法
B+樹
快速排序刑然,堆排序,插入排序(其實八大排序算法都應該了解
一致性Hash算法暇务,一致性Hash算法的應用
JVM
JVM的內(nèi)存結構泼掠。
JVM方法棧的工作過程怔软,方法棧和本地方法棧有什么區(qū)別。
JVM的棧中引用如何和堆中的對象產(chǎn)生關聯(lián)择镇。
可以了解一下逃逸分析技術挡逼。
GC的常見算法,CMS以及G1的垃圾回收過程腻豌,CMS的各個階段哪兩個是Stop the world的黔宛,CMS會不會產(chǎn)生碎片睛挚,G1的優(yōu)勢。
標記清除和標記整理算法的理解以及優(yōu)缺點。
eden survivor區(qū)的比例踢京,為什么是這個比例,eden survivor的工作過程贝室。
JVM如何判斷一個對象是否該被GC搁嗓,可以視為root的都有哪幾種類型。
強軟弱虛引用的區(qū)別以及GC對他們執(zhí)行怎樣的操作右冻。
Java是否可以GC直接內(nèi)存装蓬。
Java類加載的過程。
雙親委派模型的過程以及優(yōu)勢纱扭。
常用的JVM調優(yōu)參數(shù)矛物。
dump文件的分析。
Java有沒有主動觸發(fā)GC的方式(沒有)跪但。
多線程
Java實現(xiàn)多線程有哪幾種方式履羞。
Callable和Future的了解。
線程池的參數(shù)有哪些屡久,在線程池創(chuàng)建一個線程的過程忆首。
volitile關鍵字的作用,原理被环。
synchronized關鍵字的用法糙及,優(yōu)缺點。
Lock接口有哪些實現(xiàn)類筛欢,使用場景是什么浸锨。
可重入鎖的用處及實現(xiàn)原理,寫時復制的過程版姑,讀寫鎖柱搜,分段鎖(ConcurrentHashMap中的segment)。
悲觀鎖剥险,樂觀鎖聪蘸,優(yōu)缺點,CAS有什么缺陷,該如何解決健爬。
ABC三個線程如何保證順序執(zhí)行控乾。
sleep和wait的區(qū)別娜遵。
notify和notifyall的區(qū)別蜕衡。
ThreadLocal的了解,實現(xiàn)原理设拟。
數(shù)據(jù)庫相關
數(shù)據(jù)庫連接池。
durid的常用配置蒜绽。
計算機網(wǎng)絡
TCP镶骗,UDP區(qū)別。
三次握手躲雅,四次揮手鼎姊,為什么要四次揮手。
長連接和短連接相赁。
連接池適合長連接還是短連接相寇。
設計模式
觀察者模式
代理模式
單例模式,有五種寫法钮科,可以參考文章單例模式的五種實現(xiàn)方式
可以考Spring中使用了哪些設計模式
分布式相關
分布式事務的控制唤衫。
分布式鎖如何設計。
分布式session如何設計绵脯。
dubbo的組件有哪些佳励,各有什么作用。
zookeeper的負載均衡算法有哪些蛆挫。
dubbo是如何利用接口就可以通信的赃承。
緩存相關
redis支持哪些數(shù)據(jù)結構悴侵。
redis是單線程的么瞧剖,所有的工作都是單線程么。
redis如何存儲一個String的可免。
redis的部署方式抓于,主從,集群浇借。
redis的哨兵模式捉撮,一個key值如何在redis集群中找到存儲在哪里。
redis持久化策略逮刨。
框架相關
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上刷題換換思路。
八大排序算法一定要手敲一遍(快排结借,堆排尤其重要)筐摘。
了解一些新興的技術。
面試之后面試官都會問你有沒有什么問題船老,千萬不要沒問題咖熟,也別傻乎乎的問一些敏感問題。
了解你要面試的公司的產(chǎn)品及競爭產(chǎn)品柳畔。
幾個鏈接
總結
無論是哪家公司馍管,都很重視高并發(fā)高可用的技術,重視基礎薪韩,重視JVM确沸。面試是一個雙向選擇的過程,不要抱著畏懼的心態(tài)去面試俘陷,不利于自己的發(fā)揮张惹。同時看中的應該不止薪資,還要看你是不是真的喜歡這家公司岭洲,是不是能真的得到鍛煉宛逗。其實我寫了這么多,只是我自己的總結盾剩,并不一定適用于所有人雷激,相信經(jīng)過一些面試,大家都會有這些感觸告私。
如果這些文字能夠幫到你屎暇,那就最好了,幫不到就當是我自己的一個記錄驻粟。
最后根悼,希望大家都能找到適合自己的公司凶异,開開心心的擼代碼~