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

KITTY?發表於2019-03-02

寫在前面

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

問題整理

一、演算法

  1. 程式碼實現二叉樹的資料結構。
  2. 若二叉樹是XX(畫了一個),前序遍歷是什麼?如何程式碼實現?(寫了個遞迴)還有什麼其他的實現方式?

二、資料庫

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

三、Redis

  1. 持久化的方式
  2. 是單執行緒的嗎?
  3. 在專案中用的是Redis叢集嗎?

四、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的關係。

五、Spring相關

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

六、其他

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

七、秒殺場景

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

八、職業規劃

  1. 自己的職業規劃是什麼?
  2. 平常通過什麼方式提升技術能力

九、簡歷上專案的各種問題

總結

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

相關文章