前言:
本文收集整理了各大廠常見面試題N道,你想要的這裏都有
內容涵蓋:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技術棧,希望大家都能找到適合自己的公司,開開心心的擼代碼。
目錄:
由於題量較多,篇幅的限制,文章中的面試題分享沒有全部附上詳細的解析,但是整理成了一份詳細的PDF文檔可分享給大家,需要的朋友關注我的供種號(Java周某人)即可領取
看面試題可以是爲了面試,也可以是對自己學到的東西的一種查漏補缺,更加深刻的去了解一些核心知識點
MyBatis 面試題(27題)
ZooKeeper 面試題(28題)
Dubbo 面試題(30題)
Elasticsearch 面試題(24題)
Memcached 面試題(23題)
Redis 面試題(40題)
MySQL 面試題(50題)
Java 併發編程(一),Java 併發編程(二)(共123題)
Java 面試題(一),Java 面試題(二)(共228題)
Spring 面試題(一),Spring 面試題(二)(共116題)
微服務面試題(50題)
Linux 面試題(45題)
Spring Boot 面試題(22題)
Spring Cloud 面試題(8題)
RabbitMQ 面試題(12題)
kafka 面試題(18題)
內容過多,文章儘量簡潔,需要整個文檔資料的關注我的供種號(Java周某人)即可領取
MyBatis 面試題
1、什麼是 Mybatis?
1、Mybatis 是一個半 ORM(對象關係映射)框架,它內部封裝了 JDBC,開發時只需要關注 SQL 語句本身,不需要花費精力去處理加載驅動、創建連接、創建statement 等繁雜的過程。程序員直接編寫原生態 sql,可以嚴格控制 sql 執行性能,靈活度高。
2、MyBatis 可以使用 XML 或註解來配置和映射原生信息,將 POJO 映射成數據庫中的記錄,避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。
3、通過 xml 文件或註解的方式將要執行的各種 statement 配置起來,並通過java 對象和 statement 中 sql 的動態參數進行映射生成最終執行的 sql 語句,最後由 mybatis 框架執行 sql 並將結果映射爲 java 對象並返回。(從執行 sql 到返回 result 的過程)。
2、Mybaits 的優點:
3、MyBatis 框架的缺點:
1、SQL 語句的編寫工作量較大,尤其當字段多、關聯表多時,對開發人員編寫
SQL 語句的功底有一定要求。
2、SQL 語句依賴於數據庫,導致數據庫移植性差,不能隨意更換數據庫。
4、MyBatis 框架適用場合:
5、MyBatis 與 Hibernate 有哪些不同?
6、#{}和${}的區別是什麼?
#{}是預編譯處理,${}是字符串替換。
Mybatis 在處理#{}時,會將 sql 中的#{}替換爲?號,調用 PreparedStatement 的
set 方法來賦值;
Mybatis 在處理${}時,就是把${}替換成變量的值。
使用#{}可以有效的防止 SQL 注入,提高系統安全性
7、當實體類中的屬性名和表中的字段名不一樣 ,怎麼辦 ?
8、 模糊查詢 like 語句該怎麼寫?
...................
MyBatis面試題共27道,內容過多,文章儘量簡潔,需要整個文檔資料的關注我的供種號(Java周某人)即可
ZooKeeper 面試題
ZooKeeper 是一個開源的分佈式協調服務,由雅虎創建,是 Google Chubby 的開源實現。分佈式應用程序可以基於 ZooKeeper 實現諸如數據發佈/訂閱、負載均衡、命名服務、分佈式協調/通知、集羣管理、Master 選舉、配置維護,名字服務、分佈式同步、分佈式鎖和分佈式隊列等功能。
ZooKeeper 提供了什麼?
Zookeeper 文件系統
Zookeeper Watcher 機制--數據變更通知
客戶端註冊 Watcher 實現
zookeeper 是如何保證事務的順序一致性的?
zk 節點宕機如何處理?
..........
Dubbo 面試題
Spring Eureka 從開源轉變爲閉源,Consul 正在崛起,而 Dubbo 又開始重新更新。目前市場上仍有不少公司使用dubbo我們也需要繼續學習。
爲什麼要用 Dubbo?
隨着服務化的進一步發展,服務越來越多,服務之間的調用和依賴關係也越來越複雜,誕生了面向服務的架構體系(SOA),也因此衍生出了一系列相應的技術,如對服務提供、服務調用、連接處理、通信協議、序列化方式、服務發現、服務路由、日誌輸出等行爲進行封裝的服務框架。就這樣爲分佈式系統的服務治理框架就出現了,Dubbo 也就這樣產生了。
Dubbo 的整體架構設計有哪些分層?
默認使用的是什麼通信框架,還有別的選擇嗎?
服務調用是阻塞的嗎?
一般使用什麼註冊中心?還有別的選擇嗎?
默認使用什麼序列化框架,你知道的還有哪些?
...............
Elasticsearch 面試題
elasticsearch 瞭解多少,說說你們公司 es 的集羣架構,索引數據大小,分片有多少,以及一些調優手段 。
elasticsearch 索引數據多了怎麼辦,如何調優,部署
elasticsearch 是如何實現 master 選舉的
Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法
詳細描述一下 Elasticsearch 更新和刪除文檔的過程。
Elasticsearch 在部署時,對 Linux 的設置有哪些優化方法?
...........
Redis面試題
我們使用 Redis 時,會接觸 Redis 的 5 種對象類型(字符串、哈希、列表、集合、有序集合),豐富的類型是 Redis 相對於 Memcached 等的一大優勢。
什麼是 Redis?
使用 Redis 有哪些好處?
Redis 是單進程單線程的?
Redis 的持久化機制是什麼?各自的優缺點?
Redis 常見性能問題和解決方案:
redis 過期鍵的刪除策略?
爲什麼 edis 需要把所有數據放到內存中?
..........
內容過多,文章儘量簡潔,需要整個文檔資料的關注我的供種號(Java周某人)即可領取
MySQL 面試題
在今年上半年的數據庫使用狀況調查中,筆者收集了衆多國內外知名互聯網公司的數據庫使用情況,其中,國外GitHub、Airbnb、Yelp、Coursera均在使用MySQL數據庫,國內阿里巴巴、去哪兒網、騰訊、魅族、京東的部分關鍵業務同樣使用了MySQL數據庫。同時,MySQL也是衆多數據庫排行榜單的第一名,這個開發者和一線互聯網企業都在用的開源數據庫,你瞭解多少?
MySQL 中有哪幾種鎖?
MySQL 中有哪些不同的表格?
簡述在 MySQL 數據庫中 MyISAM 和 InnoDB 的區別
MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?
如果一個表有一列定義爲 TIMESTAMP,將發生什麼?
MySQL_fetch_array 和 MySQL_fetch_object 的區別是什麼
...............
Java 併發編程
在 java 中守護線程和本地線程區別?
什麼是多線程中的上下文切換?
Java 中用到的線程調度算法是什麼?
什麼是線程組,爲什麼在 Java 中不推薦使用?
在 Java 中 Executor 和 Executors 的區別?
併發編程三要素?
什麼是線程池?有哪幾種創建方式?
.........
內容過多,文章儘量簡潔,需要整個文檔資料關注我的供種號(Java周某人)即可領取
Spring 面試題
Spring 是個java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平臺的web應用。Spring 框架目標是簡化Java企業級應用開發,並通過POJO爲基礎的編程模型促進良好的編程習慣。
不同版本的 Spring Framework 有哪些主要功能?
列舉 Spring Framework 的優點
使用 Spring 框架的好處是什麼?
Spring 配置文件
Bean 工廠和 Application contexts 有什麼區別?
一個 Spring 的應用看起來象什麼?
什麼是 Spring 的依賴注入?
..........
微服務面試題
服務架構有哪些優勢?
設計微服務的最佳實踐是什麼?
微服務架構的優缺點是什麼?
在使用微服務架構時,您面臨哪些挑戰?
SOA 和微服務架構之間的主要區別是什麼?
什麼是 Spring 引導的執行器?
讀者福利
由於題量較多,篇幅的限制,文章中的面試題分享沒有全部附上詳細的解析,希望各位同仁理解
但是整理成了一份詳細的PDF文檔可分享給大家
領取方式:關注我的供種號(Java周某人)即可領取
記得一定要關注哦,整理不易