面了三個大廠,終於拿到offer,數年Java最經典的面試題總結
文章最後有面試題福利!記得看一下哦~
前言
寫這篇文章的目的是因為前兩天同學想應聘Java工程師,從網上找了Java面試題和答案讓我幫忙看看。我掃了一眼,倒吸了一口冷氣,仔細一看,氣的發抖。整篇題目30多個沒有一個答案是對的,所以在這裡總結一下這幾年面試別人和被別人面試遇到的一些我認為比較好的基礎題目分享給大家,進階題目在後續補充。 我的理解如果有錯漏請一定指出,非常感謝!
Java面試知識點
技術廣度
對MQ、快取、NoSQL、大資料、高併發、高可用、微服務,等一系列的相關技術都有一定的瞭解,熟悉常見功能
在自己的專案裡落地使用過,有一定的技術使用經驗,這可以解釋為技術廣度。
技術深度
- 讀過Kafka的底層原始碼?
- 對訊息中介軟體的架構設計思想有深刻的理解?
- 對分散式事務框架/中介軟體的架構設計有過研究?
- 在每秒百萬併發場景下做過底層系統的深入優化和故障處理?
- 如果你有類似這種過人之處,那麼你才能說你有某些技術深度。
專案經驗
- 你有沒有整體負責過幾億註冊使用者,幾千萬日活使用者的大規模、高併發、分散式、高可用、高複雜度的系統架構設計?
- 或者你負責的一直都是那種公司內部使用的,幾十個人用的OA系統,CRM系統?
- 這些就是你的專案經驗
團隊管理
- 你在網際網路公司裡帶過20的團隊?
- 或者你在一個傳統IT公司裡帶過3個人的小組?
- 這都是你的團隊管理經驗。
Dubbo面試題錦集
-
預設也推薦使用netty框架,還有mina。
-
預設是阻塞的,可以非同步呼叫,沒有返回值的可以這麼做。
-
推薦使用zookeeper註冊中心,還有redis等不推薦。
-
預設使用Hessian序列化,還有Duddo、FastJson、Java自帶序列化。
-
服務失效踢出基於zookeeper的臨時節點原理。
-
採用多版本開發,不影響舊版本。
-
可以結合zipkin實現分散式服務追蹤。
-
核心配置有 dubbo:service/ dubbo:reference/ dubbo:protocol/ dubbo:registry/ dubbo:application/ dubbo:provider/ dubbo:consumer/ dubbo:method/
-
預設使用dubbo協議。
-
可以直連,修改配置即可,也可以通過telnet直接某個服務。
-
流程圖見dubbo.io。
-
讀操作建議使用Failover失敗自動切換,預設重試兩次其他伺服器。寫操作建議使用Failfast快速失敗,發一次呼叫失敗就立即報錯。
-
使用過程中的問題可以百度
-
dubbox是噹噹網基於dubbo上做了一些擴充套件,如加了服務可restful呼叫,更新了開源元件等。
-
別的還有spring的spring cloud,facebook的thrift,twitter的finagle等。
Zookeeper面試集錦
-
zookeeper是一個開源的分散式協調服務框架。
-
應用場景:分散式通知/協調、負載均衡、配置中心、分散式鎖、分散式佇列等。
-
使用ZAB協議。
-
Paxos演算法看最後文章推薦的書。
-
選舉演算法及流程看最後文章推薦的書。
-
節點型別:持久節點、持久順序節點、臨時節點、臨時順序節點。
-
不是永久的,一次性的,需要藉助第三方工具實現重複註冊。
-
部署模式:單機模式、偽叢集模式、叢集模式。
-
叢集角色:leader、foller、observer。
-
叢集規則為2N+1臺,N>0,即3臺。
-
叢集需要一半以上的機器可用,所以,3臺掛掉1臺還能工作,2臺不能。
-
3.5版本開始支援動態擴容。
-
java客戶端:zk自帶的zkclient及Apache開源的Curator。
-
chubby是google的,完全實現paxos演算法,不開源。zookeeper是chubby的開源實現,使用zab協議,paxos演算法的變種。
-
常用命令:ls get set create delete等。
小編給大家推薦一個Java技術交流群:967051845!群內提供設計模式、spring/mybatis原始碼分析、高併發與分散式、微服務、效能優化,面試題整合文件等免費資料!希望找到更多的同行多多交流!以下資料,進群可以免費獲得哦
