面試整體事項(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.不要覺(jué)得HR說(shuō)讓你回去等消息就是GG了赡勘,他們也要跟你之前的面試官討論嫂便,再向領(lǐng)導(dǎo)匯報(bào),如果說(shuō)不急可能還要和其他候選人比較闸与,所以HR讓你回去等消息絕對(duì)不是說(shuō)明你完蛋了毙替。
3.面試前準(zhǔn)備好自我介紹,1分鐘左右就可以践樱,可以寫(xiě)在紙上厂画,視頻面可以照著念,等你到了現(xiàn)場(chǎng)面了基本也都快背下來(lái)你的自我介紹了拷邢。
4.準(zhǔn)備好扎實(shí)的基礎(chǔ)木羹,這是一切的根源,沒(méi)實(shí)力怎么都沒(méi)用的解孙。
5.面試中你可以把你的面試官往你會(huì)的知識(shí)上引導(dǎo)(我遇到過(guò)你會(huì)什么他不問(wèn)什么的)。
6.遇到了設(shè)計(jì)類題目不要著急抛人,面試官不是為了讓你幾分鐘設(shè)計(jì)一個(gè)高并發(fā)高可用設(shè)計(jì)模式完美的架構(gòu)弛姜,只是想看看你的思路,看看你應(yīng)變的能力妖枚,然后給你些提示看看你能否迅速的調(diào)整廷臼。
需要準(zhǔn)備的知識(shí)
以下為在近期面試中比較有印象的問(wèn)題,也就不分公司了绝页,因?yàn)闆](méi)什么意義荠商,大致分類記錄一下,目前只想起這么多续誉,不過(guò)一定要知道這些問(wè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ā)下如果沒(méi)有處理線程安全會(huì)有怎樣的安全隱患奢浑,具體表現(xiàn)是什么。
6.java中四種修飾符的限制范圍腋腮。
7.Object類中的方法雀彼。
8.接口和抽象類的區(qū)別,注意JDK8的接口可以有實(shí)現(xiàn)即寡。
9.動(dòng)態(tài)代理的兩種方式徊哑,以及區(qū)別。
10.Java序列化的方式聪富。
11.傳值和傳引用的區(qū)別莺丑,Java是怎么樣的,有沒(méi)有傳值引用墩蔓。
12.一個(gè)ArrayList在循環(huán)過(guò)程中刪除梢莽,會(huì)不會(huì)出問(wèn)題,為什么奸披。
13.@transactional注解在什么情況下會(huì)失效昏名,為什么。
數(shù)據(jù)結(jié)構(gòu)和算法
1.B+樹(shù)
2.快速排序阵面,堆排序轻局,插入排序(其實(shí)八大排序算法都應(yīng)該了解
3.一致性Hash算法,一致性Hash算法的應(yīng)用
4样刷、鏈表的一些操作仑扑。
5、隊(duì)列置鼻,棧的應(yīng)用镇饮。
6、二叉樹(shù)的是那種遍歷方式及其遞歸和非遞歸實(shí)現(xiàn)
JVM
1.JVM的內(nèi)存結(jié)構(gòu)箕母。
2.JVM方法棧的工作過(guò)程盒让,方法棧和本地方法棧有什么區(qū)別梅肤。
3.JVM的棧中引用如何和堆中的對(duì)象產(chǎn)生關(guān)聯(lián)。
4.可以了解一下逃逸分析技術(shù)邑茄。
5.GC的常見(jiàn)算法姨蝴,CMS以及G1的垃圾回收過(guò)程,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的工作過(guò)程彤路。
8.JVM如何判斷一個(gè)對(duì)象是否該被GC秕硝,可以視為root的都有哪幾種類型。
9.強(qiáng)軟弱虛引用的區(qū)別以及GC對(duì)他們執(zhí)行怎樣的操作洲尊。
10.Java是否可以GC直接內(nèi)存远豺。
11.Java類加載的過(guò)程。
12.雙親委派模型的過(guò)程以及優(yōu)勢(shì)坞嘀。
13.常用的JVM調(diào)優(yōu)參數(shù)躯护。
14.dump文件的分析。
15.Java有沒(méi)有主動(dòng)觸發(fā)GC的方式(沒(méi)有)丽涩。
多線程
1.Java實(shí)現(xiàn)多線程有哪幾種方式棺滞。
2.Callable和Future的了解。
3.線程池的參數(shù)有哪些矢渊,在線程池創(chuàng)建一個(gè)線程的過(guò)程继准。
4.volitile關(guān)鍵字的作用,原理矮男。
5.synchronized關(guān)鍵字的用法移必,優(yōu)缺點(diǎn)。
6.Lock接口有哪些實(shí)現(xiàn)類昂灵,使用場(chǎng)景是什么。
7.可重入鎖的用處及實(shí)現(xiàn)原理舞萄,寫(xiě)時(shí)復(fù)制的過(guò)程眨补,讀寫(xiě)鎖,分段鎖(ConcurrentHashMap中的segment)倒脓。
8.悲觀鎖撑螺,樂(lè)觀鎖,優(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)
1.常見(jiàn)的數(shù)據(jù)庫(kù)優(yōu)化手段
2.索引的優(yōu)缺點(diǎn),什么字段上建立索引
3.數(shù)據(jù)庫(kù)連接池游沿。
4.durid的常用配置饰抒。
計(jì)算機(jī)網(wǎng)絡(luò)
1.TCP,UDP區(qū)別诀黍。
2.三次握手袋坑,四次揮手,為什么要四次揮手眯勾。
3.長(zhǎng)連接和短連接枣宫。
4.連接池適合長(zhǎng)連接還是短連接。
設(shè)計(jì)模式
1.觀察者模式
2.代理模式
3.單例模式咒精,有五種寫(xiě)法镶柱,可以參考文章單例模式的五種實(shí)現(xiàn)方式
4.可以考Spring中使用了哪些設(shè)計(jì)模式
分布式相關(guān)
1.分布式事務(wù)的控制。
2.分布式鎖如何設(shè)計(jì)模叙。
3.分布式session如何設(shè)計(jì)歇拆。
4.dubbo的組件有哪些,各有什么作用范咨。
5.zookeeper的負(fù)載均衡算法有哪些故觅。
6.dubbo是如何利用接口就可以通信的。
緩存相關(guān)
1.redis和memcached的區(qū)別渠啊。
2.redis支持哪些數(shù)據(jù)結(jié)構(gòu)输吏。
3.redis是單線程的么,所有的工作都是單線程么替蛉。
4.redis如何存儲(chǔ)一個(gè)String的贯溅。
5.redis的部署方式,主從躲查,集群它浅。
6.redis的哨兵模式,一個(gè)key值如何在redis集群中找到存儲(chǔ)在哪里镣煮。
7.redis持久化策略姐霍。
框架相關(guān)
1.SpringMVC的Controller是如何將參數(shù)和前端傳來(lái)的數(shù)據(jù)一一對(duì)應(yīng)的。
2.Mybatis如何找到指定的Mapper的,如何完成查詢的镊折。
3.Quartz是如何完成定時(shí)任務(wù)的胯府。
4.自定義注解的實(shí)現(xiàn)。
5.Spring使用了哪些設(shè)計(jì)模式。
6.Spring的IOC有什么優(yōu)勢(shì)。
7.Spring如何維護(hù)它擁有的bean的止。
總結(jié)
以上的面試問(wèn)題希望對(duì)你有幫助辞友!找到自己滿意的工作,開(kāi)開(kāi)心心的寫(xiě)代碼!
無(wú)論是哪家公司,都很重視高并發(fā)高可用的技術(shù),重視基礎(chǔ)影所,重視JVM。面試是一個(gè)雙向選擇的過(guò)程僚碎,不要抱著畏懼的心態(tài)去面試猴娩,不利于自己的發(fā)揮。同時(shí)看中的應(yīng)該不止薪資勺阐,還要看你是不是真的喜歡這家公司卷中,是不是能真的得到鍛煉。其實(shí)我寫(xiě)了這么多渊抽,只是我自己的總結(jié)蟆豫,并不一定適用于所有人,相信經(jīng)過(guò)一些面試懒闷,大家都會(huì)有這些感觸十减。我自己呢也總結(jié)了一些資料,內(nèi)容有:Java工程化愤估、高性能及分布式帮辟、高性能、深入淺出玩焰。高架構(gòu)由驹。性能調(diào)優(yōu)、Spring昔园,MyBatis蔓榄,Netty源碼分析和大數(shù)據(jù)等多個(gè)知識(shí)點(diǎn)。如果你想拿高薪的默刚,想學(xué)習(xí)的甥郑,想就業(yè)前景好的,想跟別人競(jìng)爭(zhēng)能取得優(yōu)勢(shì)的羡棵,想進(jìn)阿里面試但擔(dān)心面試不過(guò)的壹若,大家可以私信我【學(xué)習(xí)資料】獲刃嶙辍皂冰!