走進阿里第一天,我終於知道為什麼人人擠破腦袋都想進大廠,特此附上我進阿里的面試寶典!

Java小羅發表於2020-12-21

前言

首先自我介紹一下,本人南京某渣渣本科畢業,畢業後一直待在一家不大不小的公司裡面摸魚等死,今年疫情的時候差點被裁員裁掉,自己想了想總不能就這樣下去了吧,前幾個月決心辭職。辭職後去面了幾家公司有過的有被斃的 也沒拿到滿意的offer,自己在家閒下來學習了幾個月,上個月朋友給了一個阿里的內推,想著去試試,結果過了!

java基礎相關

  • 1.手撕程式碼。牛客題霸上的原題,可以去看看:NC20數字字串轉化成IP地址
  • 2.定義Integer x=20 Integer y=200 在記憶體裡是個什麼過程?
  • 3.volite關鍵字的原理?它能保證原子性嗎?AtomicInteger底層怎麼實現的?
  • 4.threadLocal關鍵字有用過嗎?如果沒有重寫initialValue方法就直接get會怎樣?
  • 5.hashMap與concurrentHashMap原理和區別?
  • 6.hashMap什麼情況下會出現迴圈連結串列?concurrentHashMap寫的時候用什麼鎖?7.RenteenLock底層是怎麼保證執行緒安全的?
  • 8.反射能獲取到父類的私有方法嗎?怎麼防止反射破壞單例模式?
  • 9.描述下JVM記憶體模型。每個區的作用是什麼?堆記憶體的工作原理,為什麼需要兩個倖存區?只有一個行不行?老生代是用什麼垃圾回收演算法?
  • 10.描述下多執行緒原理。怎麼開啟一個執行緒?start和run方法有什麼區別?
  • 怎麼建立一個執行緒池,傳入的引數分別什麼含義?執行緒池是怎麼實現維持核心執行緒數的?怎麼實現一個自定義的拒絕策略?
  • 11.Socket程式設計 nio(這一塊我不太熟就說沒了解過,面試官就沒細問了)

開源框架相關

  • 1.你用過哪些開源框架?最熟悉的是哪個?(這裡我說了spring,所以後邊的問題都是圍繞spring的)
  • 2.描述下spring的ioc和aop。
  • 你常用哪一種注入方式?BeanFactory和ApplicationContext有什麼區別?你們專案裡用的哪個?說一下spring bean的生命週期。
  • AOP實現原理是什麼?兩種動態代理實現原理?JDK動態代理為什麼要實現介面?
  • 3.spring task是怎麼實現的?
  • 4.spring事務你是怎麼用的?加了@Transcational註解spring都做了哪些工作?怎麼知道事務執行成功了?
  • 事務隔離級別?mysql預設級別是什麼?事務傳播屬性?spring預設是什麼?巢狀事務子事務什麼時候commit?
  • 5.spring和springMVC是什麼關係?有沒有用過JdbcTemplate?
  • 6.springMVC中對整個請求的處理流程是怎樣的?返回json的話是用哪個view?

網路相關

  • 1.HTTP 1.1版本增加了哪些內容?有哪幾種請求方式?
  • 2.描述下HTTP三次握手和四次揮手過程?為什麼需要四次揮手?為什麼TIME_WAIT狀態需要經過兩個最大報文段生存時間才能到close狀態?
  • 3.瀏覽器發起一個請求到收到響應中間經歷了哪些過程?知道多少就說多少,越詳細越好。

Nginx相關

  • 1.nginx有哪些模組?你比較熟悉哪個?
  • 2.proxy_cache你是怎麼配置的?快取是存在哪裡?具體是怎麼命中快取的?
  • 簡歷裡有寫nginx,結果問得幾個問題我都沒答好,面試官就沒再多問了,囧~

資料庫相關

  • 1.mysql索引是怎麼實現的?b+樹有哪些特點?真實的資料存在哪裡?
  • 2.哪些情況下建索引?解釋下最左匹配原則?
  • 現在一個表有三列a b c,組合索引(a,b,c)查詢的時候where a like ? and b=? and c=?能用到這個組合索引嗎?為什麼?
  • 3.explain執行計劃看過沒有?其中type欄位都有哪些值?分別代表什麼?
  • 4.你有哪些sql調優經驗?

Redis相關

  • 1.redis有哪幾種資料結構?給你一個key怎麼知道是用的哪種結構?
  • 2.怎麼檢視所有的key?redis怎麼切換庫?怎麼清資料?
  • 3.描述下redis淘汰策略?如果沒有資料可以淘汰活著沒有配置淘汰策略讀請求可以正常執行嗎?
  • 4.你們專案裡redis是單節點的嗎?如果多節點怎麼同步?
  • 5.專案裡用redis存哪些資料?為什麼用redis?和jetty本地快取有什麼區別?

Linux相關

  • 1.怎麼檢視某個程式中的執行緒?
  • 2.怎麼批量替換一個資料夾下所有檔案中的一個字元?(sed命令)
  • 3.有沒有用過jps jmap jstack jstat 命令,分別說下有哪些常用引數,知道多少就說多少。
  • 我這裡結合自己用jmap jstack定位到線上問題的經驗說的,答完後感覺面試官挺滿意的,所以說實踐很重要啊~

情景模擬&其他

  • 1.設計一個系統,每天有100億條資料,需要在後臺做實時展示和查詢。
  • 我當時回答的大體思路是nginx負載均衡,訊息佇列儲存,多執行緒讀取,批量插入,資料庫分庫分表。
  • 面試官根據我的回答又衍生出了很多問題,如訊息佇列存滿了怎麼辦?(也就是消費跟不上生產)批量插入時某一條失敗了有什麼影響?怎麼解決?分庫分表應該怎麼分?怎麼解決資料遷移的問題?
  • 2.用程式碼實現cat 1.log |grep a |sort |uniq -c |sort -rn 的功能。
  • 3.手撕程式碼。牛客題霸上的原題,可以去看看:NC127 最長公共子串
  • 4.如果現在有一臺伺服器突然變得很慢,怎麼去定位問題?

下面是我整理的面試題合集和資料整理:

有需要的朋友可掃碼下方我的VX:rxh8515 即可免費傳送給您!

image.png

對於大廠面試,我最後想要強調的一點就是心態真的很重要,是決定你在面試過程中發揮的關鍵,若不能正常發揮,很可能就因為一個小失誤與offer失之交臂,所以一定要重視起來。上面資料有需要的朋友想獲取都是直接獲取的,誠意滿滿等你拿,只希望能幫助到你!另外提醒一點,充分複習,是消除你緊張的心理狀態的關鍵,但你複習充分了,自然面試過程中就要有底氣得多。

相關文章