面試整體事項(xiàng)1.簡(jiǎn)歷要準(zhǔn)備好,聯(lián)系方式一定要正確清晰醒目,項(xiàng)目經(jīng)歷按照時(shí)間倒序闡述,注意描述自己在項(xiàng)目中承擔(dān)的職責(zé),簡(jiǎn)歷的模板盡量選擇簡(jiǎn)潔的,畢竟程序員大部分還是喜歡簡(jiǎn)單明了的。
2.推薦boss直聘,我覺得很好用(不是廣告)。
3.一般的整體面試流程都是電面->現(xiàn)場(chǎng)面->HR面->等著。
4.不要覺得HR說讓你回去等消息就是GG了,他們也要跟你之前的面試官討論,再向領(lǐng)導(dǎo)匯報(bào),如果說不急可能還要和其他候選人比較,所以HR讓你回去等消息不是說明你完蛋了。
5.面試前準(zhǔn)備好自我介紹,1分鐘左右就可以,可以寫在紙上,電面可以照著念,等你到了現(xiàn)場(chǎng)面了基本也都快背下來你的自我介紹了。
6.準(zhǔn)備好扎實(shí)的基礎(chǔ),這是一切的根源,沒實(shí)力怎么都沒用的。
7.面試中你可以把你的面試官往你會(huì)的知識(shí)上引導(dǎo)(我遇到過你會(huì)什么他不問什么的)。
8.遇到了設(shè)計(jì)類題目不要著急,面試官不是為了讓你幾分鐘設(shè)計(jì)一個(gè)高并發(fā)高可用設(shè)計(jì)模式完美的架構(gòu),只是想看看你的思路,看看你應(yīng)變的能力,然后給你些提示看看你能否迅速的調(diào)整。
9.offer都會(huì)有的,不要著急,把面試當(dāng)成一個(gè)交流的過程。
需要準(zhǔn)備的知識(shí)以下為在近期面試中比較有印象的問題,也就不分公司了,因?yàn)闆]什么意義,大致分類記錄一下,目前只想起這么多,不過一定要知道這些問題只是冰山一角,就算都會(huì)了也不能怎么樣,重要的,還是堅(jiān)實(shí)的基礎(chǔ),清醒的頭腦。
Java基礎(chǔ)1.HashMap的源碼,實(shí)現(xiàn)原理,JDK8中對(duì)HashMap做了怎樣的優(yōu)化。
2.HaspMap擴(kuò)容是怎樣擴(kuò)容的,為什么都是2的N次冪的大小。
3.HashMap,HashTable,ConcurrentHashMap的區(qū)別。
4.并發(fā)下HashTable和ConcurrentHashMap哪個(gè)性能更好,為什么,如何實(shí)現(xiàn)的。
5.HashMap在高并發(fā)下如果沒有處理線程會(huì)有怎樣的隱患,具體表現(xiàn)是什么。
6.java中四種修飾符的限制范圍。
7.Object類中的方法。
8.接口和抽象類的區(qū)別,注意JDK8的接口可以有實(shí)現(xiàn)。
9.動(dòng)態(tài)代理的兩種方式,以及區(qū)別。
10.Java序列化的方式。
11.傳值和傳引用的區(qū)別,Java是怎么樣的,有沒有傳值引用。
12.一個(gè)ArrayList在循環(huán)過程中刪除,會(huì)不會(huì)出問題,為什么。
13.@transactional注解在什么情況下會(huì)失效,為什么。
數(shù)據(jù)結(jié)構(gòu)和算法1.B+樹
2.快速排序,堆排序,插入排序(其實(shí)八大排序算法都應(yīng)該了解
3.一致性Hash算法,一致性Hash算法的應(yīng)用
JVM1.JVM的內(nèi)存結(jié)構(gòu)。
2.JVM方法棧的工作過程,方法棧和本地方法棧有什么區(qū)別。
3.JVM的棧中引用如何和堆中的對(duì)象產(chǎn)生關(guān)聯(lián)。
4.可以了解一下逃逸分析技術(shù)。
5.GC的常見算法,CMS以及G1的垃圾回收過程,CMS的各個(gè)階段哪兩個(gè)是Stop the world的,CMS會(huì)不會(huì)產(chǎn)生碎片,G1的優(yōu)勢(shì)。
6.標(biāo)記清除和標(biāo)記整理算法的理解以及優(yōu)缺點(diǎn)。
7.eden survivor區(qū)的比例,為什么是這個(gè)比例,eden survivor的工作過程。
8.JVM如何判斷一個(gè)對(duì)象是否該被GC,可以視為root的都有哪幾種類型。
9.強(qiáng)軟弱虛引用的區(qū)別以及GC對(duì)他們執(zhí)行怎樣的操作。
10.Java是否可以GC直接內(nèi)存。
11.Java類加載的過程。
12.雙親委派模型的過程以及優(yōu)勢(shì)。
13.常用的JVM調(diào)優(yōu)參數(shù)。
14.dump文件的分析。
15.Java有沒有主動(dòng)觸發(fā)GC的方式(沒有)。
多線程1.Java實(shí)現(xiàn)多線程有哪幾種方式。
2.Callable和Future的了解。
3.線程池的參數(shù)有哪些,在線程池創(chuàng)建一個(gè)線程的過程。
4.volitile關(guān)鍵字的作用,原理。
5.synchronized關(guān)鍵字的用法,優(yōu)缺點(diǎn)。
6.Lock接口有哪些實(shí)現(xiàn)類,使用場(chǎng)景是什么。
7.可重入鎖的用處及實(shí)現(xiàn)原理,寫時(shí)復(fù)制的過程,讀寫鎖,分段鎖(ConcurrentHashMap中的segment)。
8.悲觀鎖,樂觀鎖,優(yōu)缺點(diǎn),CAS有什么缺陷,該如何解決。
9.ABC三個(gè)線程如何保證順序執(zhí)行。
10.線程的狀態(tài)都有哪些。
11.sleep和wait的區(qū)別。
12.notify和notifyall的區(qū)別。
13.ThreadLocal的了解,實(shí)現(xiàn)原理。
數(shù)據(jù)庫(kù)相關(guān)常見的數(shù)據(jù)庫(kù)優(yōu)化手段 索引的優(yōu)缺點(diǎn),什么字段上建立索引 數(shù)據(jù)庫(kù)連接池。
durid的常用配置。
計(jì)算機(jī)網(wǎng)絡(luò)TCP,UDP區(qū)別。
三次握手,四次揮手,為什么要四次揮手。
長(zhǎng)連接和短連接。 連接池適合長(zhǎng)連接還是短連接。
設(shè)計(jì)模式