5年經(jīng)驗(yàn)Java程序員面試20天,拿下數(shù)個(gè)offer运怖,總結(jié)出的經(jīng)驗(yàn)感想拼弃!

今天分享的是一位5年工作經(jīng)驗(yàn)的Java工程師在帝都的面試經(jīng)驗(yàn)總結(jié),看看這些互聯(lián)網(wǎng)公司都愛(ài)問(wèn)些什么題摇展,希望對(duì)大家的面試有指導(dǎo)意義吻氧。 從事Java開(kāi)發(fā)也有5年經(jīng)驗(yàn)了,4月初自己的開(kāi)啟面試經(jīng)歷之旅,前后20天左右盯孙,主面互聯(lián)網(wǎng)公司鲁森,一二線大公司或者是融資中的創(chuàng)業(yè)公司都面試過(guò),拿了一些offer振惰,其中包括奇虎360等
微信圖片_20200714201400.png

首先不同面試官面試風(fēng)格一定不同歌溉,這里是我總結(jié)這些天面試Java開(kāi)發(fā)過(guò)程中的大多數(shù)問(wèn)題,綜合分類有Java基礎(chǔ)骑晶,框架痛垛,多線程,網(wǎng)絡(luò)通信桶蛔,數(shù)據(jù)庫(kù)以及設(shè)計(jì)模式匙头,算法等幾個(gè)模塊。
一名3年工作經(jīng)驗(yàn)的java程序員應(yīng)該具備哪些技能仔雷,這可能是Java程序員們比較關(guān)心的內(nèi)容蹂析。我這里要說(shuō)明一下,以下列舉的內(nèi)容不是都要會(huì)的東西----但是如果你掌握得越多碟婆,最終能得到的評(píng)價(jià)电抚、拿到的薪水勢(shì)必也越高。
一竖共、Java基礎(chǔ)

  1. String類為什么是final的喻频。
  2. HashMap的源碼,實(shí)現(xiàn)原理肘迎,底層結(jié)構(gòu)。
  3. 反射中锻煌,Class.forName和classloader的區(qū)別
  4. session和cookie的區(qū)別和聯(lián)系妓布,session的生命周期,多個(gè)服務(wù)部署時(shí)session管理宋梧。
  5. Java中的隊(duì)列都有哪些匣沼,有什么區(qū)別。
  6. Java的內(nèi)存模型以及GC算法
  7. Java數(shù)組和鏈表兩種結(jié)構(gòu)的操作效率捂龄,在哪些情況下(從開(kāi)頭開(kāi)始释涛,從結(jié)尾開(kāi)始,從中間開(kāi)始)倦沧,哪些操作(插入唇撬,查找,刪除)的效率高
  8. Java內(nèi)存泄露的問(wèn)題調(diào)查定位:jmap展融,jstack的使用等等
    二窖认、多線程

這也是必問(wèn)的一塊了。因?yàn)槿旯ぷ鹘?jīng)驗(yàn),所以基本上不會(huì)再問(wèn)你怎么實(shí)現(xiàn)多線程了扑浸,會(huì)問(wèn)得深入一些比如說(shuō)Thread和Runnable的區(qū)別和聯(lián)系烧给、多次start一個(gè)線程會(huì)怎么樣、線程有哪些狀態(tài)喝噪。當(dāng)然這只是最基本的础嫡,出乎意料地,幾次面試幾乎都被同時(shí)問(wèn)到了一個(gè)問(wèn)題酝惧,問(wèn)法不盡相同榴鼎,總結(jié)起來(lái)是這么一個(gè)意思:

假如有Thread1、Thread2系奉、Thread3檬贰、Thread4四條線程分別統(tǒng)計(jì)C、D缺亮、E翁涤、F四個(gè)盤(pán)的大小,所有線程都統(tǒng)計(jì)完畢交給Thread5線程去做匯總萌踱,應(yīng)當(dāng)如何實(shí)現(xiàn)葵礼?

聰明的網(wǎng)友們對(duì)這個(gè)問(wèn)題是否有答案呢?不難并鸵,java.util.concurrent下就有現(xiàn)成的類可以使用鸳粉。
另外,線程池也是比較常問(wèn)的一塊园担,常用的線程池有幾種届谈?這幾種線程池之間有什么區(qū)別和聯(lián)系?線程池的實(shí)現(xiàn)原理是怎么樣的弯汰?實(shí)際一些的艰山,會(huì)給你一些具體的場(chǎng)景,讓你回答這種場(chǎng)景該使用什么樣的線程池比較合適咏闪。

最后曙搬,雖然這次面試問(wèn)得不多,但是多線程同步鸽嫂、鎖這塊也是重點(diǎn)纵装。

synchronized和ReentrantLock的區(qū)別、synchronized鎖普通方法和鎖靜態(tài)方法据某、死鎖的原理及排查方法等等橡娄,關(guān)于多線程,我在之前有些過(guò)文章總結(jié)過(guò)多線程癣籽,并發(fā)編程的面試問(wèn)題瀑踢!

java并發(fā)編程高級(jí)面試:并發(fā)隊(duì)列+可重入鎖+線程池等
image.png

三扳还、IO

IO分為File IO和Socket IO,F(xiàn)ile IO基本上是不會(huì)問(wèn)的橱夭,問(wèn)也問(wèn)不出什么來(lái)氨距,平時(shí)會(huì)用就好了,另外記得File IO都是阻塞IO棘劣。

Socket IO是比較重要的一塊俏让,要搞懂的是阻塞/非阻塞的區(qū)別、同步/異步的區(qū)別茬暇,借此理解阻塞IO首昔、非阻塞IO、多路復(fù)用IO糙俗、異步IO這四種IO模型勒奇,Socket IO如何和這四種模型相關(guān)聯(lián)。

這是基本一些的巧骚,深入一些的話赊颠,就會(huì)問(wèn)NIO的原理、NIO屬于哪種IO模型劈彪、NIO的三大組成等等竣蹦,這有些難,當(dāng)時(shí)我也是研究了很久才搞懂NIO沧奴。提一句痘括,NIO并不是嚴(yán)格意義上的非阻塞IO而應(yīng)該屬于多路復(fù)用IO,面試回答的時(shí)候要注意這個(gè)細(xì)節(jié)滔吠,講到NIO會(huì)阻塞在Selector的select方法上會(huì)增加面試官對(duì)你的好感纲菌。

如果用過(guò)Netty,可能會(huì)問(wèn)一些Netty的東西疮绷,畢竟這個(gè)框架基本屬于當(dāng)前最好的NIO框架了(Mina其實(shí)也不錯(cuò)翰舌,不過(guò)總體來(lái)說(shuō)還是比不上Netty的),大多數(shù)互聯(lián)網(wǎng)公司也都在用Netty矗愧。
image.png

四、JDK源碼

要想拿高工資郑原,JDK源碼不可不讀唉韭。上面的內(nèi)容可能還和具體場(chǎng)景聯(lián)系起來(lái),JDK源碼就是實(shí)打?qū)嵉乜茨闫綍r(shí)是不是愛(ài)鉆研了犯犁。過(guò)程中被問(wèn)了不少JDK源碼的問(wèn)題属愤,其中最刁鉆的一個(gè)問(wèn)了,String的hashCode()方法是怎么實(shí)現(xiàn)的酸役,幸好平時(shí)String源代碼看得多住诸,答了個(gè)大概驾胆。JDK源碼其實(shí)沒(méi)什么好總結(jié)的,純粹看個(gè)人贱呐,總結(jié)一下比較重要的源碼:

List丧诺、Map、Set實(shí)現(xiàn)類的源代碼
ReentrantLock奄薇、AQS的源代碼
AtomicInteger的實(shí)現(xiàn)原理驳阎,主要能說(shuō)清楚CAS機(jī)制并且AtomicInteger是如何利用CAS機(jī)制實(shí)現(xiàn)的
線程池的實(shí)現(xiàn)原理
Object類中的方法以及每個(gè)方法的作用
這些其實(shí)要求蠻高的,去年一整年基本把JDK中重要類的源代碼研究了個(gè)遍馁蒂,真的花費(fèi)時(shí)間呵晚、花費(fèi)精力,當(dāng)然回頭看沫屡,是值得的----不僅僅是為了應(yīng)付面試饵隙。

五、框架

  1. spring框架中需要引用哪些jar包沮脖,以及這些jar包的用途
  2. srpingMVC的原理
  3. springMVC注解的意思
  4. spring中beanFactory和ApplicationContext的聯(lián)系和區(qū)別
  5. spring注入的幾種方式
  6. spring如何實(shí)現(xiàn)事物管理的
  7. springIOC和AOP的原理
  8. spring中循環(huán)注入的方式


    image.png

    六金矛、數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)十有八九也都會(huì)問(wèn)到。一些基本的像union和union all的區(qū)別倘潜、left join绷柒、幾種索引及其區(qū)別就不談了,比較重要的就是數(shù)據(jù)庫(kù)性能的優(yōu)化涮因,如果對(duì)于數(shù)據(jù)庫(kù)的性能優(yōu)化一竅不通废睦,那么有時(shí)間,還是建議你在面試前花一兩天專門(mén)把SQL基礎(chǔ)和SQL優(yōu)化的內(nèi)容準(zhǔn)備一下养泡。

不過(guò)數(shù)據(jù)庫(kù)倒是不用擔(dān)心嗜湃,一家公司往往有很多部門(mén),如果你對(duì)數(shù)據(jù)庫(kù)不熟悉而基本技術(shù)又非常好澜掩,九成都是會(huì)要你的购披,估計(jì)會(huì)先把你放到對(duì)數(shù)據(jù)庫(kù)使用不是要求非常高的部門(mén)鍛煉一下。
image.png

七肩榕、數(shù)據(jù)結(jié)構(gòu)和算法分析

數(shù)據(jù)結(jié)構(gòu)和算法分析刚陡,對(duì)于一名程序員來(lái)說(shuō),會(huì)比不會(huì)好株汉,而且在工作中絕對(duì)能派上用場(chǎng)筐乳。數(shù)組、鏈表是基礎(chǔ)乔妈,棧和隊(duì)列深入一些但也不難蝙云,樹(shù)挺重要的,比較重要的樹(shù)AVL樹(shù)路召、紅黑樹(shù)勃刨,可以不了解它們的具體實(shí)現(xiàn)波材,但是要知道什么是二叉查找樹(shù)、什么是平衡樹(shù)身隐,AVL樹(shù)和紅黑樹(shù)的區(qū)別廷区。記得某次面試,某個(gè)面試官和我聊到了數(shù)據(jù)庫(kù)的索引抡医,他問(wèn)我:

你知道索引使用的是哪種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)嗎躲因?

答到用的Hash表吧,答錯(cuò)忌傻。他又問(wèn)大脉,你知道為什么要使用樹(shù)嗎?答到因?yàn)镠ash表可能會(huì)出現(xiàn)比較多的沖突水孩,在千萬(wàn)甚至是上億級(jí)別的數(shù)據(jù)面前镰矿,會(huì)大大增加查找的時(shí)間復(fù)雜度。而樹(shù)比較穩(wěn)定俘种,基本保證最多二三十次就能找到想要的數(shù)據(jù)秤标,對(duì)方說(shuō)不完全對(duì),最后我們還是交流了一下這個(gè)問(wèn)題宙刘,我也明白了為什么要使用樹(shù)苍姜。

八、JVM

出乎意料悬包,Java虛擬機(jī)應(yīng)該是很重要的一塊內(nèi)容衙猪,結(jié)果在這幾家公司中被問(wèn)到的概率幾乎為0。要知道布近,去年可是花了大量的時(shí)間去研究Java虛擬機(jī)的垫释,光周志明老師的《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐》,就讀了不下五遍撑瞧。

言歸正傳棵譬,雖然Java虛擬機(jī)沒(méi)問(wèn)到,但我覺(jué)得還是有必要研究的预伺,就簡(jiǎn)單地列一個(gè)提綱吧订咸,談?wù)凧ava虛擬機(jī)中比較重要的內(nèi)容:

  1. Java虛擬機(jī)的內(nèi)存布局
  2. GC算法及幾種垃圾收集器
  3. 類加載機(jī)制,也就是雙親委派模型
  4. Java內(nèi)存模型
  5. happens-before規(guī)則
  6. volatile關(guān)鍵字使用規(guī)則
    image.png

    也許面試無(wú)用酬诀,但在走向大牛的路上脏嚷,不可不會(huì),這個(gè)是面試了幾家公司最后經(jīng)過(guò)整合寫(xiě)出了這些面試題料滥,面試就決定了你的薪資然眼,一定要好好對(duì)待艾船,這些問(wèn)題可能不會(huì)問(wèn)到葵腹,但是程序員技多不壓身高每,最后收到了百度的offer,薪資還不錯(cuò)践宴,把這些面試題分享出來(lái)希望能幫助那些打算跳槽或轉(zhuǎn)行的人~~我的java編程技術(shù)交流群:1080621881 .需要的朋友可以自行來(lái)獲取學(xué)習(xí)鲸匿。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市阻肩,隨后出現(xiàn)的幾起案子带欢,更是在濱河造成了極大的恐慌,老刑警劉巖烤惊,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乔煞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡柒室,警方通過(guò)查閱死者的電腦和手機(jī)渡贾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)雄右,“玉大人空骚,你說(shuō)我怎么就攤上這事±奕裕” “怎么了囤屹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)逢渔。 經(jīng)常有香客問(wèn)我肋坚,道長(zhǎng),這世上最難降的妖魔是什么复局? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任冲簿,我火速辦了婚禮,結(jié)果婚禮上亿昏,老公的妹妹穿的比我還像新娘峦剔。我一直安慰自己,他們只是感情好角钩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布吝沫。 她就那樣靜靜地躺著,像睡著了一般递礼。 火紅的嫁衣襯著肌膚如雪惨险。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天脊髓,我揣著相機(jī)與錄音辫愉,去河邊找鬼。 笑死将硝,一個(gè)胖子當(dāng)著我的面吹牛恭朗,可吹牛的內(nèi)容都是我干的屏镊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼痰腮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼而芥!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起膀值,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤棍丐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后沧踏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體歌逢,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年翘狱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了趋翻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盒蟆,死狀恐怖踏烙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情历等,我是刑警寧澤讨惩,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站寒屯,受9級(jí)特大地震影響荐捻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寡夹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一处面、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧菩掏,春花似錦魂角、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瞧栗,卻和暖如春斯稳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背迹恐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工挣惰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓憎茂,卻偏偏與公主長(zhǎng)得像唆涝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唇辨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容