記錄一次壯烈犧牲的阿里巴巴面試

作者:raledong
來(lái)自:https://segmentfault.com/a/1190000013329013

前言

今天本是一個(gè)陽(yáng)光明媚,鳥(niǎo)語(yǔ)花香的日子高诺。于是我決定在逛街中感受春日的陽(yáng)光~結(jié)果晚上七點(diǎn)的時(shí)候菜谣,螞蟻金服后端大佬來(lái)了電話桅打,要進(jìn)行一輪的技術(shù)面試页徐。我一臉黑人問(wèn)號(hào)?存谎?拔疚?現(xiàn)在的面試都流行突襲嗎?

于是我的第一次面試之旅既荚,就此壯烈的展開(kāi)稚失。

自我介紹

首先呢,大佬讓我用兩分鐘自我介紹恰聘。我本以為自己能滔滔不絕句各,將對(duì)方視作相親對(duì)象般全方位介紹自己吸占。結(jié)果不到半分鐘,我就介紹完了==诫钓。

五秒鐘的沉默后旬昭,大佬嗯了一聲篙螟。

感覺(jué)自己的臉上堆滿了尷尬而不失禮貌的微笑菌湃。

最近的項(xiàng)目經(jīng)歷

這時(shí)大佬問(wèn)我最近從事了什么項(xiàng)目,研究生階段都進(jìn)行了什么樣的工作遍略。

那必須吹一吹惧所!從JAVA的起源到Spring的發(fā)展再到j(luò)enkin的使用順便提一嘴dva+antd,結(jié)果半分鐘一到绪杏,又說(shuō)不下去了==

大佬很有耐心的聽(tīng)我說(shuō)了一堆語(yǔ)無(wú)倫次的話下愈,開(kāi)始進(jìn)入正題。

Spring

大佬:我看你用過(guò)這個(gè)Spring啊蕾久,你來(lái)聊聊為什么我們要使用Spring呢势似?

我:(因?yàn)榇蠹叶颊f(shuō)好啊)首先呢僧著,spring是一個(gè)龐大的框架履因,它封裝了很多成熟的功能能夠讓我們無(wú)需重復(fù)造輪子。其次呢盹愚,它使用IOC進(jìn)行依賴管理栅迄,我們就不用自己初始化實(shí)例啦。

大佬:(我就知道你會(huì)說(shuō)IOC啦)那你解釋一下IOC吧

我:IOC就是依賴控制轉(zhuǎn)化皆怕,利用JAVA的反射機(jī)制毅舆,將實(shí)例的初始化交給Spring。Spring可以通過(guò)配置文件管理實(shí)例愈腾。

大佬:那我們可以直接使用工廠模式呀憋活。工廠模式也可以管理實(shí)例的初始化呀,為什么一定要使用Spring呢虱黄?

我:啊........因?yàn)?......方便悦即?(仿佛看到大佬凝固的表情,為了不那么尷尬礁鲁,我決定轉(zhuǎn)移話題)盐欺。而且spring的IOC是單例模式呢。

大佬:默認(rèn)的是實(shí)現(xiàn)是單例模式嗎仅醇?

我:對(duì)的冗美。

這里查了一下為什么不用工廠模式而使用IOC。其實(shí)本質(zhì)上還是因?yàn)镮OC是通過(guò)反射機(jī)制來(lái)實(shí)現(xiàn)的析二。當(dāng)我們的需求出現(xiàn)變動(dòng)時(shí)粉洼,工廠模式會(huì)需要進(jìn)行相應(yīng)的變化节预。但是IOC的反射機(jī)制允許我們不重新編譯代碼,因?yàn)樗膶?duì)象都是動(dòng)態(tài)生成的属韧。
數(shù)據(jù)庫(kù)

大佬:你使用過(guò)哪些數(shù)據(jù)庫(kù)呀安拟?

我:mysql還有sqlight。(被遺忘的mongodb在角落里無(wú)聲哭泣)

大佬:那你使用的ORM框架除了hibernate還有哪些宵喂,比如IBatis糠赦?

我:我用過(guò)MyBatis

大佬:哦,那你能講一下你對(duì)兩個(gè)框架使用后的感受嗎锅棕?

我:當(dāng)時(shí)使用Mybaits的時(shí)候拙泽,也有去社區(qū)了解了一下兩個(gè)框架的口碑,發(fā)現(xiàn)大家的戰(zhàn)隊(duì)都堅(jiān)定而對(duì)立裸燎。對(duì)Hibernate的不滿通常是因?yàn)樗趶?fù)雜關(guān)聯(lián)中往往會(huì)帶來(lái)嚴(yán)重的性能問(wèn)題顾瞻,也就是N+1的問(wèn)題。但是它是面向?qū)ο笾С值淖詈玫目蚣芰说侣獭6鳰ybatis則相對(duì)而言比較易于使用荷荤,只需要會(huì)SQL語(yǔ)句就行了。但是也意味著會(huì)破壞一些面向?qū)ο蟮囊?guī)則移稳。

大佬:(似乎有點(diǎn)認(rèn)可)那你了解數(shù)據(jù)庫(kù)的事務(wù)嗎蕴纳?能講一下數(shù)據(jù)庫(kù)的事務(wù)級(jí)別嗎?

我:(忘得一干二凈)emmm不好意思我記不太清楚了秒裕。

大佬:那你還記得數(shù)據(jù)庫(kù)的加鎖嗎袱蚓?比如樂(lè)觀鎖,悲觀鎖几蜻?

我:(求您別問(wèn)了T T)

大佬:(鍥而不舍)那我現(xiàn)在假設(shè)有一張用戶表喇潘,你也知道,正常的表只能存放大概一千萬(wàn)或是兩千萬(wàn)左右的數(shù)據(jù)梭稚。但是阿里巴巴有上億的用戶颖低?你會(huì)怎么存儲(chǔ)呢?

我:可以縱向分割與橫向分割弧烤。

大佬:那你覺(jué)得這里應(yīng)該縱向還是橫向呢忱屑?

我:縱向(載入史冊(cè)的嘴瓢)

大佬:(很有耐心)可是這樣我的數(shù)據(jù)庫(kù)還是放不下啊

我:(仿佛突然睡醒)應(yīng)該是橫向分割,把表拆分成多個(gè)表然后分布式存儲(chǔ)

大佬:那你覺(jué)得我們?cè)鯓臃指畋容^合適呢暇昂?

我:(還能再問(wèn)莺戒?)可以根據(jù)地域,但是根據(jù)用戶分布的情況來(lái)說(shuō)急波,還是會(huì)有某些地域訪問(wèn)稠密而有些地域比較稀疏的問(wèn)題从铲。難道按照用戶等級(jí)?

大佬:不澄暮,用戶等級(jí)會(huì)變動(dòng)名段,不合適阱扬。你這個(gè)階段暫時(shí)沒(méi)有考慮這個(gè)問(wèn)題

我:(謝謝您的臺(tái)階啊I毂佟)

Linux

大佬:你們服務(wù)器用的是什么操作系統(tǒng)奥榛獭?

我:(呀信夫,送命題)我們用的是阿里云上的centos系統(tǒng)

大佬:那你對(duì)linux熟練嗎窃蹋?

我:不是很熟悉,僅僅是入門(mén)忙迁,能夠敲一點(diǎn)指令脐彩。

大佬:好碎乃,那你知道庫(kù)函數(shù)和內(nèi)核調(diào)用嗎姊扔?

我:內(nèi)核調(diào)用是指進(jìn)入內(nèi)核態(tài)然后執(zhí)行指令然后再回到用戶態(tài)嗎?

大佬:對(duì)

我:我知道的大概就這么多了梅誓,只了解一些概念上的內(nèi)容恰梢。(涼涼送給自己)

大佬:那你知道如何查看進(jìn)程嗎?

我:啊...記不得了梗掰,我一般都查一下指令(于是大佬果斷放棄了其它linux問(wèn)題)嵌言。

JVM

大佬:你了解JAVA虛擬機(jī)嗎?能解釋一下底層的模塊嗎及穗?

我:(如果你通知我明天面試摧茴,我就了解了><)不好意思,這一塊知識(shí)我不熟悉埂陆,但是我很愿意去了解(趕緊表忠心翱涟住!)

線程

大佬:你知道什么是線程安全嗎焚虱?

我:(烏魯烏魯說(shuō)了一堆)就是比如如果同時(shí)有兩個(gè)線程訪問(wèn)同一個(gè)變量购裙,那么它們對(duì)變量造成的修改所帶來(lái)的結(jié)果可能是不確定的。

大佬:那你知道JAVA有什么方法來(lái)實(shí)現(xiàn)線程安全嗎鹃栽?

我:(前幾天還翻譯了博客躏率,但是一問(wèn)起來(lái)忘得比啥都快)首先是synchronized修飾詞,然后JAVA還自己實(shí)現(xiàn)了一些封裝好的類(lèi)比如LatchDown民鼓,Atomic系列(????????后來(lái)一查是CountDownLatch薇芝!還有大明湖畔的final關(guān)鍵字呢?還有小明湖畔的Lock呢丰嘉?還有那些實(shí)現(xiàn)線程的collections比如ConcurrentHashMap呢夯到?)

大佬果然開(kāi)啟了下一個(gè)問(wèn)題。

分布式

大佬:你有寫(xiě)過(guò)分布式的業(yè)務(wù)嗎供嚎?

我:我寫(xiě)過(guò)一個(gè)基于HDFS分布式存儲(chǔ)的KVStore黄娘,上層使用Hadoop的API實(shí)現(xiàn)峭状。

大佬:那個(gè)是分布式存儲(chǔ),我想了解一下分布式業(yè)務(wù)逼争?

我:(趕緊糾正)那dubbo算嗎优床?(于是介紹了一下自己了解的dubbo)

大佬:ok。那你覺(jué)得分布式的話會(huì)遇到什么問(wèn)題呢誓焦?

我:那就是經(jīng)典的CAP問(wèn)題了胆敞。沒(méi)有數(shù)據(jù)庫(kù)能夠同時(shí)滿足這三個(gè)問(wèn)題

大佬:那你能具體解釋一下CAP代表什么嗎?

我:(緊張到一片空白)Consistency杂伟?Atomic移层?P...Persistency?赫粥?观话?

大佬:。越平。频蛔。。秦叛。晦溪。

CAP:是指Consistency一致性,Availability可用性挣跋,Partition Tolerance分區(qū)容忍性
設(shè)計(jì)模式

大佬:你了解過(guò)設(shè)計(jì)模式嗎三圆?

我:了解了解

大佬:那你了解過(guò)哪些設(shè)計(jì)模式呢?

我:blablabla

大佬:那你解釋一下指令模式吧

我:這個(gè)有點(diǎn)像函數(shù)式編程的思想避咆。指令模式就是指將各個(gè)操作封裝為統(tǒng)一的接口舟肉,并且提供各個(gè)操作的實(shí)現(xiàn)類(lèi)。這樣我們只需要面向command接口編程牌借,解除了調(diào)用類(lèi)和指令之間的強(qiáng)耦合度气。

總結(jié)

最后當(dāng)然和大佬話一話家常,進(jìn)行最后的掙扎膨报×准總結(jié)來(lái)說(shuō),要想成功進(jìn)行一次阿里巴巴的面試现柠,你需要了解甚至掌握以下內(nèi)容:

JAVA語(yǔ)言院领,尤其是線程
JVM原理
數(shù)據(jù)庫(kù)(事務(wù),加鎖够吩,ORM)
Linux
Spring(重點(diǎn)1热弧)
分布式
設(shè)計(jì)模式
可以說(shuō)是涉及范圍非常廣了。不過(guò)其實(shí)要想成為一名優(yōu)秀的后端開(kāi)發(fā)周循,是需要這些知識(shí)面的强法,只能說(shuō)自己還是太菜了万俗。要繼續(xù)深入學(xué)習(xí)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末饮怯,一起剝皮案震驚了整個(gè)濱河市闰歪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蓖墅,老刑警劉巖库倘,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異论矾,居然都是意外死亡教翩,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)贪壳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)饱亿,“玉大人,你說(shuō)我怎么就攤上這事寥袭÷放酰” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵传黄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我队寇,道長(zhǎng)膘掰,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任佳遣,我火速辦了婚禮识埋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘零渐。我一直安慰自己窒舟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布诵盼。 她就那樣靜靜地躺著惠豺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪风宁。 梳的紋絲不亂的頭發(fā)上洁墙,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音戒财,去河邊找鬼热监。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饮寞,可吹牛的內(nèi)容都是我干的孝扛。 我是一名探鬼主播列吼,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼苦始!你這毒婦竟也來(lái)了冈欢?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盈简,失蹤者是張志新(化名)和其女友劉穎凑耻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體柠贤,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡香浩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臼勉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邻吭。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宴霸,靈堂內(nèi)的尸體忽然破棺而出囱晴,到底是詐尸還是另有隱情,我是刑警寧澤瓢谢,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布畸写,位于F島的核電站,受9級(jí)特大地震影響氓扛,放射性物質(zhì)發(fā)生泄漏枯芬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一采郎、第九天 我趴在偏房一處隱蔽的房頂上張望千所。 院中可真熱鬧,春花似錦蒜埋、人聲如沸淫痰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)待错。三九已至,卻和暖如春皂林,著一層夾襖步出監(jiān)牢的瞬間朗鸠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工础倍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烛占,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像忆家,于是被迫代替她去往敵國(guó)和親犹菇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • 前言 今天本是一個(gè)陽(yáng)光明媚芽卿,鳥(niǎo)語(yǔ)花香的日子揭芍。于是我決定在逛街中感受春日的陽(yáng)光~結(jié)果晚上七點(diǎn)的時(shí)候,螞蟻金服后端大佬...
    程序員BUG閱讀 239評(píng)論 0 0
  • 看過(guò)《月亮和六便士》后卸例,我一直篤信作者毛姆不僅是一位偉大的作家称杨,而且也是一位很偉大的心里學(xué)家。盡管在此之前筷转,同時(shí)在...
    張雨璇閱讀 283評(píng)論 0 0
  • 首先你要知道《周易》包含《經(jīng)》《傳》兩部分姑原,傳說(shuō)是周文王姬昌所著。 話不累述呜舒,直接開(kāi)始锭汛。 請(qǐng)你心中默念想要占卜的事...
    余白日志閱讀 5,500評(píng)論 0 1
  • 鏈接?悍媽系列(Ⅶ) 老媽消息渠道越來(lái)越多 聊天知道了我去拜壽喝酒過(guò)量 一改原來(lái)的說(shuō)法 不是什么喝酒不醉最為高 更...
    微風(fēng)LG閱讀 302評(píng)論 2 4
  • 這題讓我想了好久,實(shí)在找不到的算法袭蝗,看了下解答唤殴,果然是出現(xiàn)了超綱的知識(shí)點(diǎn)——unordered_set,這個(gè)數(shù)據(jù)結(jié)...
    單調(diào)不減閱讀 209評(píng)論 0 0