1. 程式人生 > 實用技巧 >敗在騰訊二面之下,通宵刷題捲土重來,意外將阿里offer攬入懷中!

敗在騰訊二面之下,通宵刷題捲土重來,意外將阿里offer攬入懷中!

原因是這樣的

這篇文章是一位讀者的面試阿里的經歷分享,雖然說在第二次面試完之後就涼涼了,但是這次面試經歷對於他來說是有很大的收穫以及幫助的。

先來看下這次面試都問了些什麼問題吧,下面這些問題既是高頻面試題也是非常具有代表性的面試題。

文章內容有限,你們需要的面試題(含參考答案)以及一些架構方面的筆記已經整理好了,大家可以【轉發+關注】後:點選這裡即可獲取!

阿里巴巴一面

  • 自我介紹這個就不說了,開頭必問的
  • 說一下StringBuilder 和 StringBuffer
  • Spring bean載入,例項化的過程
  • Spring AOP原始碼看過嗎
  • java記憶體模型說一下
  • 如果給你一個map,裡面有很多很多物件,那麼這個map存放在哪
  • 瞭解GC演算法嗎?
  • 說一下CMS垃圾回收器
  • B+樹和B樹的區別?
  • haspmap底層講一講
  • ConcurrentHashMap的底層實現?
  • CAS是硬體實現還是軟體實現?
  • volatile是鎖嗎?
  • 淘寶和京東的區別,你覺得是什麼?

專案相關:

  • 介紹一下你簡歷上寫的專案?自己主要做了什麼?
  • 你覺得專案裡給你最大的挑戰是什麼?遇到了什麼問題?如何解決的?從中學到了什麼?
  • 專案的架構圖能畫一下不?
  • 覺得專案有哪些地方可以改進完善?
  • 如果我有很多欄位都需要建立索引,怎麼辦?
  • Mysql的儲存引擎,你用的是哪種?

程式碼面:

  • 設計一個多執行緒列印程式,第i個執行緒只打印i-1數字,比如第1個執行緒列印數字0,第2個執行緒只打印數字1,依次類推。任意給定一個數字序列,比如3382019835830,能夠使用該程式打印出來。
  • 快速找出一個數組中的兩個數字,讓這兩個數字之和等於一個給定的值,為了簡化起見,我們假設這個陣列中肯定存在至少一組符合要求的解。

阿里巴巴二面

  • 又聊了專案
  • 你說到你專案裡用了UDP,你為什麼不用TCP
  • 那你詳細說一下TCP和UDP的區別
  • 資料庫用的是什麼(MySQL)
  • 那你的資料量是多少(幾百萬)
  • 那你這幾百萬條,做了什麼查詢優化(索引)
  • 怎麼建的索引
  • 為什麼用時間和id來做索引?
  • 資料庫的隔離級別
  • 知道什麼是主從複製嗎?
  • 你說一下建立索引的規則
  • JAVA類載入機制(載入驗證準備解析初始化,又說到雙親委派模型)
  • 執行緒池所有引數講一講
  • ConcurrentHashMap的底層實現
  • RPC用過嗎?
  • 訊息佇列呢?

**總結:**前面問了一些基礎性的東西,然後就一直往深了問,問的也基本是有關專案的問題,因為之前做的本身就是一個小專案,也並沒有什麼亮點,二面結束我就回去等通知了,結果也肯定是涼涼了。

汲取教訓,突破底層技術

其實每次面試不管成功還是失敗,都是一次很好的學習機會,所以一定要認真對待每次面試,從面試中總結經驗,在面試中掃盲,然後回家進行查漏補缺。

首先就是在面試結束後梳理自己的知識體系,這份大綱是目前一線大廠主流的技術,也是面試的重點,大家可以對照梳理自己的知識點,用來掃盲最好不過了,高清完整版請【轉發+關注】後:點選這裡獲取!

梳理完知識點後結合面試所問到的內容,大致可以看出是哪些不足,然後針對這些知識點再一步一步的深度挖掘,從這位讀者的面試看出,他應該可以深度學習一下資料庫方面的知識,那接下來我也就跟大家主要的分享一下關係型資料庫——MySQL的深度進階。

MySQL深度進階

MySQL基礎內容(稍微帶過)

  • MySQL基本介紹
  • MySQL架構組成
  • MySQL儲存引擎簡介
  • MySQL安全管理
  • MySQL備份與恢復

MySQL效能優化

  • 影響MySQLServer效能的相關因素
  • MySQL資料庫鎖定機制
  • MySQL資料庫Query的優化
  • MySQL資料庫Schema設計的效能優化
  • MySQLServer效能優化
  • 常用儲存引擎優化

MySQL架構設計

  • MySQL可擴充套件設計的基本原則
  • 可擴充套件性設計之MySQLReplication
  • 可擴充套件性設計之資料切分
  • 可擴充套件性設計之Cache與Search的利用
  • MySQLCluster
  • 高可用設計之思路及方案
  • 高可用設計之MySQL監控

總結

在這裡,由於面試中MySQL問的比較多,因此也就在此以MySQL為例為大家總結分享。但是你要學習的往往不止這一點,還有一些主流框架的使用,Spring原始碼的學習,Mybatis原始碼的學習等等都是需要掌握的,我也把這些知識點都整理起來了,有需要的朋友可以**【轉發+關注】後:點選這裡獲取!**