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 如何不消費重複數據?比如扣款,我們不能重複的扣。