2020預備春招BAT面試題匯總:MyBatis +微服務+多線程+Spring+分佈式

  • 2020 年 2 月 23 日
  • 筆記

前言:

本文收集整理了各大廠常見面試題N道,你想要的這裡都有內容涵蓋:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技術棧,希望大家都能找到適合自己的公司,開開心心的擼代碼。

目錄:

由於題量較多,篇幅的限制,文章中的面試題分享沒有全部附上詳細的解析,但是整理成了一份詳細的PDF文檔可分享給大家,文末獲取免費領取方式

看面試題可以是為了面試,也可以是對自己學到的東西的一種查漏補缺,更加深刻的去了解一些核心知識點

MyBatis 面試題

  • 1、什麼是 Mybatis?
  • 2、Mybaits 的優點:
  • 3、MyBatis 框架的缺點:
  • 4、MyBatis 框架適用場合:
  • 5、MyBatis 與 Hibernate 有哪些不同?
  • 6、#{}和${}的區別是什麼?
  • 7、當實體類中的屬性名和表中的字段名不一樣 ,怎麼辦 ?
  • 8、 模糊查詢 like 語句該怎麼寫?

ZooKeeper 面試題

ZooKeeper 是一個開源的分佈式協調服務,由雅虎創建,是 Google Chubby 的開源實現。分佈式應用程序可以基於 ZooKeeper 實現諸如數據發佈/訂閱、負載均衡、命名服務、分佈式協調/通知、集群管理、Master 選舉、配置維護,名字服務、分佈式同步、分佈式鎖和分佈式隊列等功能。

  • zookeeper 負載均衡和 nginx 負載均衡區別
  • Zookeeper Watcher 機制–數據變更通知
  • 客戶端註冊 Watcher 實現
  • zookeeper 是如何保證事務的順序一致性的?
  • Zookeeper 對節點的 watch監聽通知是永久的嗎?為什麼不是永久的?
  • zk 節點宕機如何處理?

Dubbo 面試題

Spring Eureka 從開源轉變為閉源,Consul 正在崛起,而 Dubbo 又開始重新更新。目前市場上仍有不少公司使用dubbo我們也需要繼續學習。

  • 為什麼要用 Dubbo?
  • 默認使用的是什麼通信框架,還有別的選擇嗎?
  • 服務調用是阻塞的嗎?
  • 一般使用什麼註冊中心?還有別的選擇嗎?
  • 默認使用什麼序列化框架,你知道的還有哪些?
  • Dubbo 的整體架構設計有哪些分層?

Elasticsearch 面試題

  • elasticsearch 了解多少,說說你們公司 es 的集群架構,索引數據大小,分片有多少,以及一些調優手段 。
  • elasticsearch 索引數據多了怎麼辦,如何調優,部署
  • elasticsearch 是如何實現 master 選舉的
  • Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法
  • 詳細描述一下 Elasticsearch 更新和刪除文檔的過程。
  • Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法?

Redis面試題

隨着應用研發技術的不斷成熟,Redis 緩存技術已經成為後台研發同學必備的能力之一。在很多公司面試的過程中,都必不可少地考察 Redis 知識點的掌握。

  • 使用 Redis 有哪些好處?
  • Redis 是單進程單線程的?
  • Redis 的持久化機制是什麼?各自的優缺點?
  • Redis 常見異常問題和解決方案(雪崩,穿透…)
  • redis 過期鍵的刪除策略?
  • 為什麼 redis 需要把所有數據放到內存中?
  • Redis 集群的主從複製模型是怎樣的?
  • Redis key 的過期時間和永久有效分別怎麼設置?

MySQL 面試題

如今互聯網行業用的最多就是 MySQL,然而對於高級 Web 面試者,尤其對於尋找 30k 下工作的求職者,很多 MySQL 相關知識點基本都會涉及,如果面試中,你的相關知識答的模糊和不切要點,基本大多稍好公司的面試官,基本也不會對你有興趣,畢竟稍微量大的項目,最終都會讓你去深入數據庫,而且最終的大多瓶頸首先也會出現在數據庫。

  • MySQL 相關存儲引擎。
  • MySQL 索引實現原理。
  • MySQL 數據庫鎖。
  • MySQL 的 SQL 調優。
  • MySQL 分表分庫全局 ID。

Java 並發編程面試題

  • 在 java 中守護線程和本地線程區別?
  • 什麼是多線程中的上下文切換?
  • Java 中用到的線程調度算法是什麼?
  • 什麼是線程組,為什麼在 Java 中不推薦使用?
  • 在 Java 中 Executor 和 Executors 的區別?
  • 並發編程三要素?
  • 什麼是線程池?有哪幾種創建方式?

Spring 面試題

  • 1. 談談對 Spring IoC 的理解?
  • 2. 談談對 Spring DI 的理解?
  • 3. BeanFactory 接口和 ApplicationContext 接口不同點是什麼?
  • 4. 請介紹你熟悉的 Spring 核心類,並說明有什麼作用?
  • 5. 介紹一下 Spring 的事務的了解?
  • 6. 介紹一下 Spring 的事務實現方式?
  • 7.什麼是 Spring 的依賴注入?

Kafka面試題

  • Kafka 與傳統 MQ 消息系統之間有三個關鍵區別?
  • 講一講 kafka 的 ack 的三種機制?
  • 消費者故障,出現活鎖問題如何解決?
  • kafka 分佈式(不是單機)的情況下,如何保證消息的順序消費?
  • kafka 如何不消費重複數據?比如扣款,我們不能重複的扣。