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