前言
15年畢業(yè)到現(xiàn)在有三年多了,最近去面試了阿里集團(tuán)(菜鳥網(wǎng)絡(luò),螞蟻金服)乘盼,網(wǎng)易升熊,滴滴,點(diǎn)我達(dá)绸栅,最終收到點(diǎn)我達(dá)级野,網(wǎng)易o(hù)ffer,螞蟻金服二面掛掉粹胯,菜鳥網(wǎng)絡(luò)一個(gè)月了還在流程中...
最終有幸去了網(wǎng)易蓖柔。
但是要特別感謝點(diǎn)我達(dá)的領(lǐng)導(dǎo)及HR,真的非常非常好风纠,很感謝他們一直的關(guān)照和指導(dǎo)况鸣。
面試整體事項(xiàng)
1.簡歷要準(zhǔn)備好,聯(lián)系方式一定要正確清晰醒目竹观,項(xiàng)目經(jīng)歷按照時(shí)間倒序闡述镐捧,注意描述自己在項(xiàng)目中承擔(dān)的職責(zé),簡歷的模板盡量選擇簡潔的臭增,畢竟程序員大部分還是喜歡簡單明了的懂酱。
2.推薦boss直聘,我覺得很好用(不是廣告)誊抛。
3.一般的整體面試流程都是電面->現(xiàn)場面->HR面->等著列牺。
4.不要覺得HR說讓你回去等消息就是GG了,他們也要跟你之前的面試官討論拗窃,再向領(lǐng)導(dǎo)匯報(bào)瞎领,如果說不急可能還要和其他候選人比較,所以HR讓你回去等消息絕對(duì)不是說明你完蛋了随夸。
5.面試前準(zhǔn)備好自我介紹默刚,1分鐘左右就可以,可以寫在紙上逃魄,電面可以照著念,等你到了現(xiàn)場面了基本也都快背下來你的自我介紹了澜搅。
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)用
JVM
1.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)類一汽,使用場景是什么避消。
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ù)庫相關(guān)
1.常見的數(shù)據(jù)庫優(yōu)化手段
2.索引的優(yōu)缺點(diǎn)信轿,什么字段上建立索引
3.數(shù)據(jù)庫連接池。
4.durid的常用配置残吩。
計(jì)算機(jī)網(wǎng)絡(luò)
1.TCP财忽,UDP區(qū)別。
2.三次握手泣侮,四次揮手即彪,為什么要四次揮手。
3.長連接和短連接旁瘫。
4.連接池適合長連接還是短連接祖凫。
設(shè)計(jì)模式
1.觀察者模式
2.代理模式
3.單例模式,有五種寫法酬凳,可以參考文章單例模式的五種實(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ù)和前端傳來的數(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结蟋。
一些較新的東西
1.JDK8的新特性,流的概念及優(yōu)勢(shì)渔彰,為什么有這種優(yōu)勢(shì)嵌屎。
2.區(qū)塊鏈了解
3.如何設(shè)計(jì)雙11交易總額面板,要做到高并發(fā)高可用恍涂。
一些小建議
1.可以去leetcode上刷題換換思路宝惰。
2.八大排序算法一定要手敲一遍(快排,堆排尤其重要)再沧。
3.了解一些新興的技術(shù)尼夺。
4.面試之后面試官都會(huì)問你有沒有什么問題,千萬不要沒問題炒瘸,也別傻乎乎的問一些敏感問題淤堵。
5.了解你要面試的公司的產(chǎn)品及競爭產(chǎn)品。
無論是哪家公司顷扩,都很重視高并發(fā)高可用的技術(shù)拐邪,重視基礎(chǔ),重視JVM隘截。面試是一個(gè)雙向選擇的過程扎阶,不要抱著畏懼的心態(tài)去面試,不利于自己的發(fā)揮婶芭。同時(shí)看中的應(yīng)該不止薪資东臀,還要看你是不是真的喜歡這家公司,是不是能真的得到鍛煉犀农。其實(shí)我寫了這么多惰赋,只是我自己的總結(jié),并不一定適用于所有人,相信經(jīng)過一些面試杠茬,大家都會(huì)有這些感觸。
希望大家都能找到適合自己的公司奠衔,開開心心的擼代碼~
還沒有找到自己合適的公司的可以添加小助理vx:bjmsb2019免費(fèi)獲取面試資料和一些進(jìn)階視頻資料
而針對(duì)以上面試技術(shù)點(diǎn)流部,我在這里也做一些資料分享,希望能更好的幫助到大家纹坐。
225道互聯(lián)網(wǎng)面試題(含答案)
如果經(jīng)驗(yàn)總結(jié)對(duì)你有幫助記得點(diǎn)個(gè)贊枝冀!