阿里巴巴面經


我晚上剛健完身,然后去外面吃了一頓豬腳飯。正准備吃呢,突然來了一個浙江杭州的電話。

然后就開始了我慘無人睹的電話一面(人生中第一次面試竟然是阿里巴巴)

1. 項目:Java高並發秒殺系統

如何優化:
用了redis緩存,spring的聲明式事物

2. Java基礎知識

ConcurrentHashMap你知道多少
Java基本數據類型(byte, short, int, long, float, double, boolean, char)
接口實現接口用extends
Java垃圾回收機制(標記清除算法, 標記復制算法, 標記整理算法)
類加載機制:“通過一個類的全限定名來獲取描述此類的二進制字節流”,雙親委派模型
啟動類加載器 -> 擴展類加載器 -> 應用類加載器
線程如何同步(volatile + JMM模型,鎖也行)
Java是靜態語言

3. 數據結構

圖遍歷(dfs + bfs)
二叉樹特性:
性質1:在二叉樹的第i層上至多有2i-1個結點(i≥1)。(數學歸納法可證)
性質2:深度為k的二叉樹最多有2k-1個結點(k≥1)。(由性質1,通過等比數列求和可證)
B樹和B+樹的區別:
由於B+樹的數據都存儲在葉子結點中,分支結點均為索引,方便掃庫,只需要掃一遍葉子結點即可,
但是B樹因為其分支結點同樣存儲着數據,我們要找到具體的數據,需要進行一次中序遍歷按序來掃
,所以B+樹更加適合在區間查詢的情況,所以通常B+樹用於數據庫索引,而B樹則常用於文件索引。

4.計算機網絡

osi七層模型:物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層
三次握手四次分手
http協議(HTTP是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫)
HTTP是一個應用層協議,由請求和響應構成,是一個標准的客戶端服務器模型。
HTTP是一個無狀態的協議。
HTTP 5xx狀態碼(服務器內部錯誤)

5.算法

鏈表反轉用O(n)復雜度 劍指Offer原題,用三個指針(left, mid, right三個指針)

6.總結

       其實說實話問的都很基礎。但由於我復習還沒有到位,而且很多東西都忘了。

  而且當時我在吃豬腳飯,外面的車和人呼呼的過,太吵了,很多都沒有聽清。

  答是答出來了,但很多沒有答全,而且細節也沒有答好,感覺要GG

 

第二次流程:

一面(2018年4月17日):

1: 項目:redis放到MySQL這中間一段時間,如果有大量用戶涌進怎么辦

2: TCP三次握手過程

3: 第二次握手出現問題怎么解決?

  ans: 超時重傳機制。大概5次就認為失敗了。

4: 第三次握手出現問題怎么解決?

  ans: 此時客戶端認為連接已經建立了,但由於第三次失敗,那么服務器端就沒有建立連接。服務器端就會多次催促客戶端,我還需要一個ack。如果多次請求收不到,那么就認為此次三次握手失敗了。

5: 滑動窗口

6: arraylist多線程擴容。

  ans: 可以直接拋出一個異常給客戶端 (盡早的拋出錯誤,這是面試官一直想要的答案,但我一直沒get他的點,很傷神。)

7: arraylist for循環的時候刪除元素

8: HashMap for循環刪除元素

9: redis持久化

  ans: RDB,fork子線程定時執行。AOF,類似於添加日志,添加一條執行一條

10: MySQL底層索引用的什么結構

11: 設計模式

12: jvm內存怎么管理的。

  ans: 棧 + 堆。堆又分為新生代和老年代。新生代又分為Eden + from survivor+ to survivor

13: 線程池 (newFixedThreadPool, newCachedThreadPool, newSingleThreadExecutor, newScheduledThreadPool)

14: 線程池拒絕策略。(拋異常,不拋異常,LRU拋棄最早的,阻塞主線程,用主線程來執行)

 

二面(2018年4月20日)

1: MySQL存儲引擎 (InnoDB)

2: 索引結構 (B+樹) 是否為平衡樹?

3: 樹的遍歷

4: explain命令

5: 談一下對Spring框架的理解 (IoC, AOP)

6: AOP底層如何實現 (HandlerInvole, MethodIntercepter)

7: Spring的單例 是否為線程安全? 看bean的具體類

8: HashMap是否為線程安全

9: JVM模型

10: volitile有沒有了解過?

11: 代碼如何編譯打包部署?maven用過沒有?

12: 沒有eclipse如何編譯Java代碼?

13: ant有用過么?

14: rpc遠程調用有沒有用過?

15: Java中的鎖

16: 死鎖產生有沒有了解?

17: 如何避免死鎖?

18: 最近在看什么計算機的書?

19: 本科沒有想到去讀碩士嘛?

20: 什么時候可以實習?

 

hr面(2018年4月24日)

1: 內部推薦?誰推薦?

2: 大三沒有考研的打算?

3: 成績如何?

4: 你之前有過什么實踐的經歷?

5: 除了在公司,有沒有跟着老師做一些項目?

6: 自己找了什么項目來做

7: 項目做了多久

8: 大學學習計划如何

9: 以后想往什么的方向,為什么?

10: 怎么達成這個目標

11: 周圍有沒有特別崇拜的技術牛人

12: 參加acm成績不理想的原因?

13: 周圍人怎么評價你,你自己怎么評價你

14: 你在校最要提升的是什么

15: 實習計划

16: 你有什么問題

 


免責聲明!

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



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