阿里面試問題總結(Java工程師)

寫在前面

今天是我來杭州找工做後參加的第一次現場面試,也算是工做以來第一次正式的技術面試,超級超級緊張!兩個面試官貌似都是作中間件和數據庫編程方向的,問的不少我都不太擅長,兩輪下來四個字總結那就是生無可戀。今天憑記憶總結一下,調整心態繼續征程吧!java

問題整理

1、算法

  1. 代碼實現二叉樹的數據結構。
  2. 若二叉樹是XX(畫了一個),前序遍歷是什麼?如何代碼實現?(寫了個遞歸)還有什麼其餘的實現方式?

2、數據庫

  1. 寫SQL語句。有一個表三個字段「姓名」、「科目」、「成績」,寫一個查詢語句查出至少三科成績爲90分以上的學生姓名。
  2. 有A和B兩個表,join後會有多少種結果,SQL怎麼寫?
  3. 數據庫三範式是什麼?
  4. ER圖。
  5. 索引。
  6. 事務是什麼?事務的特徵是哪些,如何理解?四種事務隔離級別是什麼?如何理解?四種隔離級別分別會發生什麼狀況?在平時應該如何選擇?
  7. 死鎖是什麼?引起死鎖的狀況。四個條件分別是什麼,如何理解?如何處理死鎖?
  8. 若是發現一條SQL查詢語句執行時間很長,應如何排查解決?
  9. 在業務中價錢字段用什麼數據類型?
  10. 數據庫主從複製的原理?爲何用主從複製,解決了什麼問題?
  11. 數據庫的鎖是怎麼實現的。

3、Redis

  1. 持久化的方式
  2. 是單線程的嗎?
  3. 在項目中用的是Redis集羣嗎?

4、Java

  1. ThreadLocal是什麼?何時會選擇存在ThreadLocal中?爲何?
  2. 確保線程安全的方法有哪些?
  3. synchronized加在靜態方法上和非靜態方法上區別是什麼?
  4. 想要實現下單後30分鐘未支付關閉訂單,如何實現?(我說了定時任務,面試官說還有其餘方式嗎?大概是想要問Timer類吧?)
  5. 什麼是原子操做?
  6. 線程之間如何共享數據?
  7. CountDownLatch和CyclicBarrier分別是什麼?
  8. synchronized和ReentrantLock的區別?ReentrantLock叫可重入鎖,可重入是什麼意思?
  9. java有哪些Collection?
  10. 何時用數組,何時用ArrayList?
  11. 異常處理機制:Throwable、Exception、Error的關係。

5、Spring相關

  1. IOC是什麼?
  2. Bean的生命週期
  3. 若是一個jar包過於老舊,maven庫上沒有,如何在springboot中使用?(大概是這意思,然而我並不知道)
  4. springboot是什麼?爲何用springboot?

6、其餘

  1. 三層架構和mvc架構的區別。
  2. 當你走在馬路上,要去坐公交車,發現要坐的公交車從你旁邊通過,你會怎麼作?(這是道智力題嗎?黑人問號臉?)

7、秒殺場景

  1. 分佈式Session是如何實現的?
  2. 如何優化?除了分流和加緩存,還有哪些思路?
  3. 超賣問題

8、職業規劃

  1. 本身的職業規劃是什麼?
  2. 日常經過什麼方式提高技術能力

9、簡歷上項目的各類問題

總結

面試官除了問是什麼,更多的是想知道我對這些的理解、實現原理和實際應用,也確實暴露出本身不少問題,最後就是一種被問蒙了的狀態。坦然接受結果,繼續努力吧!面試

想要了解架構技術知識點的,能夠關注個人JAVA架構師社區秋㪊:705127209,裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的知識體系。算法

相關文章
相關標籤/搜索