阿里巴巴校招四面經驗分享



 總結

  06.20我從北京xxxx有限公司離職,結束了一年的見習生涯。07.05-08.04在幫我姐夫做翻譯;畢竟這段時間比較空閑,在空閑的時候我都是在准備面試,不管是Java基礎、JVM、數據庫、數據結構、分布式、集群還是項目都准備的差不多,期間我看過《數據結構與算法分析》和《Java編程思想》等書籍。08.03我回到深圳,08.04開始的阿里一面到08.22的四面,今天得知四面掛了感覺很可惜,畢竟差Offer僅一步之遙,但又在意料之中;你選擇公司,公司同樣也選擇你,如果你沒有足夠優秀,那么對不起-你只是一個過客,而我就是那么一個過客而已。我也留了退路,畢竟阿里沒有十足的把握;在這段時間我也去面過三家公司都是自身產品研發,很巧很幸運也都拿到了Offer;公司沒有好壞之分,你選擇公司的原因無非看在該公司是否能夠給予我們期望的salary、行業的前景和對自身的成長空間,這些之中阿里無非是首選。從阿里的這趟面試經歷中,給我最大的領悟就是:只有自己足夠優秀,才有選擇的余地。

 


 一面(30分鍾)

 

  你最近在干嗎?(********)、你能說下服裝外貿的流程嗎?、集合底層原理、介紹項目、介紹下buddo、如果我發了兩筆相同的轉賬你是怎么處理的?(項目上,采用redis:單線程)、redis掛了怎么辦?(采取集群模式,能夠持久化:命令行log和持久化到本地或者是遠程服務器存儲)、你能講下對賬嗎?、你有什么要問我的嗎?

 


 二面(45分鍾)

  介紹一下自己、介紹一下項目、問了個交易場景是怎么處理的、你做過jvm的優化嗎(答:沒有,因為在項目上有專門的架構團隊,他們負責這些工作,但我有簡單了解過)?那你在項目上優化過什么沒有?(答:將數據庫數據放入緩存、因為這些數據是不常改的)你除了學習java還有學習其他語言嗎?(答:有了解過python偶爾會去看一些視頻,畢竟現在我還處在學習階段,我覺得我現在應該先把java基礎先打牢,然后再去把其他語言作為第二或者第三語言)、你看過redis、dubbo的源碼嗎?(答:沒有,但我簡單了解過;看源碼就是看別人寫的好的代碼思想,因為看源碼需要有足夠的能力才有看得懂,我覺得java的基礎得先掌握牢固,比如:設計模式啊、jdk源碼啊等)你除了在項目上學的東西還有哪些途徑獲取知識(公眾號、書)、你關注的公眾號有哪些?(Hollis、Java后端技術、Java思維導圖、Java技術棧、Java面試筆試)、在最近的一篇文章你學到了什么(JVM,開始巴拉巴拉)、你參加過世界知名的大賽嗎?(如:ACM,答:我參加過藍橋杯、創新大賽,ACM沒能力去啊)、你的成績怎樣?(開始巴拉巴拉)

 


 三面(49分鍾,交叉面)

  • 前戲

A:你面的是ICBU(國際技術事業部)是嗎?

B:是的,之前填的是這個部門

A:來我們部門(業務平台事業部)吧?現在阿里的重心在我們部門,ICBU的話不是公司的業務核心(面試官在憨笑)

B:可以啊,可以轉部門嗎?可以的話我就轉過來(在憨笑)

A:可以轉,不過一般是要在正式兩年之后才可以

A:你之前面試過嗎?你是第輪面試了啊?

B:這是第三面了

A:你現在人在哪里呢?

B:我現在在深圳這邊

A:來杭州吧,深圳那邊的話是一個研發基地,杭州是總部基本核心業務部門都在這里

B:可以的,聽從安排,畢竟阿里牛人多,哪里需要去哪里(在笑着)

A:好吧,現在開始我們的面試吧

 

  • 面試

A:自我介紹下......

B:巴拉巴拉

A:你做過哪些項目

B:開始敘述......(先講做過的項目,然后挑一個熟悉的項目精講:包括項目背景、項目系統架構、用到的技術、模塊的各個功能)

A:為什么要用分布式?我集成模式也可以啊?

B:分布式系統的話有這些優點:qps、運行可靠性、可擴展性、可維護性、解耦等(還好多,多巴拉巴拉)

A:那分布式的數據一致性問題怎么解決?

B:在我們項目的話,內部通訊主要采用的是MQ,MQ在一定程度上市可以保證書屋的一致性的

A:MQ如何保證一致性的?

B:比如A模塊發了一個消息到Topic1,B模塊監聽Topic1;如果B獲取了消息就會往下執行,如果沒有獲取則消息還在

A:如果此時我B系統奔潰了怎么辦?這個怎么處理?(這個問題主要問的是分布式、集群的特點了)

B:因為分布式系統在集群模式下,每一個服務實例都有運行數據的拷貝;比如B奔潰了導致線程中斷,因為分布式有容災的特性在每個B系統的集群實例都有相關數據的備份,即使B掛了也沒事,還有B1、B2、B3......

A:xxxxx模塊是干什么的?

B:巴拉巴拉

A:為什么網關要用restful接口方式?

B:為了兼容之前的系統,客戶化的時候去掉了網關模塊;現在統一采用的是dubbo接口,因為dubbo也有錯誤重試、軟負載、服務自動發現等優點(建議在回答的時候盡量要回答為什么,自己主動說而不是別人問)

A:緩存你們一般用來干嘛?

B:在我們項目的話,主要用於兩個方面;一是:基礎配置數據,二是:異步緩存

A:基礎配置數據的話是你們服務起來的時候一個一個啟動嗎?

B:是的,我們用的@PostConstruct注解,當服務一啟動的時候就將數據庫的配置加載到本地緩存;如果在應用程序中,某個請求拿不到緩存的話就去數據庫查詢(適當改編,因為之前是沒有去數據庫拿數據這一步,畢竟有可能緩存你拿不到消息)

A:項目問完了,現在問下java基礎

A:StringBuffer、StringBuilder的區別

B:巴拉巴拉

A:ArrayList、LinkedList的區別以及使用場景

B:巴拉巴拉

A:泛型用過嗎?

B:用過,比如List、Set、Map這些都有用到過泛型

A:泛型的優點是什么?

B:避免了CastClassException的異常;在沒有泛型之前是用Object,但這有一個問題是會有類轉換異常;泛型有類型擦除,在編譯期間這行類型是不會保留的

A:再來講講集合吧,HashMap是線程安全的嗎?

B:非線程安全,線程安全的有HashTable、ConCurrentHashMap

A:設計模式用過嗎?

B:具體沒用過,但了解過;比如IO的適配器模式和裝飾器模式

A:使用單例模式的時候需要注意什么?

B:側重雙重校驗鎖(再巴拉巴拉其他的)

A:web開發了解嗎?

B:了解過一些

A:問個簡單的,post與get的區別?

B:巴拉巴拉

A:cookie與session的區別?

B:巴拉巴拉

A:好的差不了了解了,你還有什么想問的嗎?

B:我問下的,阿里校招難嗎?容不容易進啊?

A:挺難的,現在我們部門一個都還沒過,一個Offer都還沒發。你這邊我覺得沒什么問題

B:阿里對待校招生有怎樣的培養計划?

A:進去之后都是有師兄帶着的,也有全部的新人做一個項目............

B:轉正難不難啊?

A:也不算難,轉正的時候會參考以往的工作外加考核

B:好的,我差不多了解了

A:好的,謝謝,再見

B:謝謝啊,拜拜

 


 四面(57分鍾,交叉面)

A:清算與結算有什么區別?

A:你覺得Java跟其他高級語言有什么區別?

A:Java的最新版本是什么?有什么特性?

A:StringBuffer、StringBuilder的區別

A:線程安全的概念

A:代理模式

A:異常分為哪些,運行時異常與非運行時異常的區別,自定義異常屬於什么異常

A:final與finally的區別

A:B_IO、N_IO、A_IO的區別

A:JVM

A:JMM

A:如果一個應用隔三天就會發生OutOfMemory,這個問題你會怎么排查?(jmap工具)

A:MySQL怎么備份(mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql)

A:復合索引的問題

A:MySQL的存儲引擎有哪些,他們有哪些不一樣

A:MySQL事務的四個特性

A:xxxxx項目分為哪幾個模塊?

A:適配器用來干嘛的?

A:你們項目的冪等校驗

A:我大概了解了;結果的話這個星期會出,你注意下手機或者郵件。先這樣了,再見

A:謝謝,拜拜

......(還有其他的,記不起來了)

 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM