寫在前面
今天是我來杭州找工做後參加的第一次現場面試,也算是工做以來第一次正式的技術面試,超級超級緊張!兩個面試官貌似都是作中間件和數據庫編程方向的,問的不少我都不太擅長,兩輪下來四個字總結那就是生無可戀。今天憑記憶總結一下,調整心態繼續征程吧!java
問題整理
1、算法
- 代碼實現二叉樹的數據結構。
- 若二叉樹是XX(畫了一個),前序遍歷是什麼?如何代碼實現?(寫了個遞歸)還有什麼其餘的實現方式?
2、數據庫
- 寫SQL語句。有一個表三個字段「姓名」、「科目」、「成績」,寫一個查詢語句查出至少三科成績爲90分以上的學生姓名。
- 有A和B兩個表,join後會有多少種結果,SQL怎麼寫?
- 數據庫三範式是什麼?
- ER圖。
- 索引。
- 事務是什麼?事務的特徵是哪些,如何理解?四種事務隔離級別是什麼?如何理解?四種隔離級別分別會發生什麼狀況?在平時應該如何選擇?
- 死鎖是什麼?引起死鎖的狀況。四個條件分別是什麼,如何理解?如何處理死鎖?
- 若是發現一條SQL查詢語句執行時間很長,應如何排查解決?
- 在業務中價錢字段用什麼數據類型?
- 數據庫主從複製的原理?爲何用主從複製,解決了什麼問題?
- 數據庫的鎖是怎麼實現的。
3、Redis
- 持久化的方式
- 是單線程的嗎?
- 在項目中用的是Redis集羣嗎?
4、Java
- ThreadLocal是什麼?何時會選擇存在ThreadLocal中?爲何?
- 確保線程安全的方法有哪些?
- synchronized加在靜態方法上和非靜態方法上區別是什麼?
- 想要實現下單後30分鐘未支付關閉訂單,如何實現?(我說了定時任務,面試官說還有其餘方式嗎?大概是想要問Timer類吧?)
- 什麼是原子操做?
- 線程之間如何共享數據?
- CountDownLatch和CyclicBarrier分別是什麼?
- synchronized和ReentrantLock的區別?ReentrantLock叫可重入鎖,可重入是什麼意思?
- java有哪些Collection?
- 何時用數組,何時用ArrayList?
- 異常處理機制:Throwable、Exception、Error的關係。
5、Spring相關
- IOC是什麼?
- Bean的生命週期
- 若是一個jar包過於老舊,maven庫上沒有,如何在springboot中使用?(大概是這意思,然而我並不知道)
- springboot是什麼?爲何用springboot?
6、其餘
- 三層架構和mvc架構的區別。
- 當你走在馬路上,要去坐公交車,發現要坐的公交車從你旁邊通過,你會怎麼作?(這是道智力題嗎?黑人問號臉?)
7、秒殺場景
- 分佈式Session是如何實現的?
- 如何優化?除了分流和加緩存,還有哪些思路?
- 超賣問題
8、職業規劃
- 本身的職業規劃是什麼?
- 日常經過什麼方式提高技術能力
9、簡歷上項目的各類問題
總結
面試官除了問是什麼,更多的是想知道我對這些的理解、實現原理和實際應用,也確實暴露出本身不少問題,最後就是一種被問蒙了的狀態。坦然接受結果,繼續努力吧!面試
想要了解架構技術知識點的,能夠關注個人JAVA架構師社區秋㪊:705127209,裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的知識體系。算法
![](http://static.javashuo.com/static/loading.gif)