自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開(kāi)發(fā) 后端 Linux 數(shù)據(jù)庫(kù)
今天本是一個(gè)陽(yáng)光明媚,鳥(niǎo)語(yǔ)花香的日子。于是我決定在逛街中感受春日的陽(yáng)光~結(jié)果晚上七點(diǎn)的時(shí)候,螞蟻金服后端大佬來(lái)了電話(huà),要進(jìn)行一輪的技術(shù)面試。我一臉黑人問(wèn)號(hào)???現(xiàn)在的面試都流行突襲嗎?于是我的第一次面試之旅,就此壯烈的展開(kāi)。

[[240153]]

前言

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

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

自我介紹

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

五秒鐘的沉默后,大佬嗯了一聲。

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

最近的項(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ú)倫次的話(huà),開(kāi)始進(jìn)入正題。

Spring

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

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

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

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

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

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

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

我:對(duì)的。

這里查了一下為什么不用工廠(chǎng)模式而使用IOC。其實(shí)本質(zhì)上還是因?yàn)镮OC是通過(guò)反射機(jī)制來(lái)實(shí)現(xiàn)的。當(dāng)我們的需求出現(xiàn)變動(dòng)時(shí),工廠(chǎng)模式會(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的不滿(mǎn)通常是因?yàn)樗趶?fù)雜關(guān)聯(lián)中往往會(huì)帶來(lái)嚴(yán)重的性能問(wèn)題,也就是N+1的問(wèn)題。但是它是面向?qū)ο笾С值淖詈玫目蚣芰?。而Mybatis則相對(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è)觀(guān)鎖,悲觀(guān)鎖?

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

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

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

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

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

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

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

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

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

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

我:(謝謝您的臺(tái)階?。。?/p>

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í)行指令然后再回到用戶(hù)態(tài)嗎?

大佬:對(duì)

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

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

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

JVM

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

我:(如果你通知我明天面試,我就了解了><)不好意思,這一塊知識(shí)我不熟悉,但是我很愿意去了解(趕緊表忠心啊?。?/p>

線(xiàn)程

大佬:你知道什么是線(xiàn)程安全嗎?

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

大佬:那你知道JAVA有什么方法來(lái)實(shí)現(xiàn)線(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)線(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à)會(huì)遇到什么問(wèn)題呢?

我:那就是經(jīng)典的CAP問(wèn)題了。沒(méi)有數(shù)據(jù)庫(kù)能夠同時(shí)滿(mǎn)足這三個(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)然和大佬話(huà)一話(huà)家常,進(jìn)行最后的掙扎。總結(jié)來(lái)說(shuō),要想成功進(jìn)行一次阿里巴巴的面試,你需要了解甚至掌握以下內(nèi)容:

  • JAVA語(yǔ)言,尤其是線(xiàn)程
  • JVM原理
  • 數(shù)據(jù)庫(kù)(事務(wù),加鎖,ORM)
  • Linux
  • Spring(重點(diǎn)?。?/li>
  • 分布式
  • 設(shè)計(jì)模式

 

可以說(shuō)是涉及范圍非常廣了。不過(guò)其實(shí)要想成為一名優(yōu)秀的后端開(kāi)發(fā),是需要這些知識(shí)面的,只能說(shuō)自己還是太菜了。要繼續(xù)深入學(xué)習(xí)! 

責(zé)任編輯:龐桂玉 來(lái)源: java版web項(xiàng)目
相關(guān)推薦

2015-07-30 10:19:29

阿里巴巴面試經(jīng)歷

2018-01-02 09:23:38

數(shù)據(jù)分析算法阿里巴巴

2010-06-28 10:43:47

2015-07-30 09:31:26

阿里巴巴前端面試

2018-05-10 16:52:03

阿里巴巴前端面試題

2013-08-22 09:36:45

阿里巴巴王堅(jiān)阿里云

2013-08-22 09:41:52

阿里巴巴去IOE王堅(jiān)

2024-03-04 00:00:00

系統(tǒng)架構(gòu)核心

2024-03-11 10:52:34

2024-03-12 09:34:01

2013-06-02 21:53:51

阿里巴巴Windows Azu淘寶

2015-05-12 15:09:01

阿里巴巴公有云IaaS

2009-02-27 10:46:32

DBA筆試題阿里巴巴

2023-03-29 09:42:32

2019-08-15 10:25:02

代碼開(kāi)發(fā)工具

2012-06-28 14:35:49

Web

2013-10-30 16:40:55

阿里巴巴阿里云云計(jì)算

2013-10-10 13:30:44

馬云阿里巴巴

2009-06-30 13:28:54

阿里巴巴旺旺

2014-12-31 10:48:40

阿里巴巴馬云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)