2019大廠Java崗面試題全曝光,刷完這1020道,金三銀四大廠等你
前言:
本文收集整理了各大廠常見面試題N道,你想要的這里都有
內容涵蓋:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技術棧,希望大家都能找到適合自己的公司,開開心心的擼代碼。
看面試題可以是為了面試,也可以是對自己學到的東西的一種查漏補缺,更加深刻的去了解一些核心知識點
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題)
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道,內容過多,文章盡量簡潔
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 需要把所有數據放到內存中?
..........
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 的區別?
並發編程三要素?
什么是線程池?有哪幾種創建方式?
.........
Spring 面試題
Spring 是個java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平台的web應用。Spring 框架目標是簡化Java企業級應用開發,並通過POJO為基礎的編程模型促進良好的編程習慣。
不同版本的 Spring Framework 有哪些主要功能?
列舉 Spring Framework 的優點
使用 Spring 框架的好處是什么?
Spring 配置文件
Bean 工廠和 Application contexts 有什么區別?
一個 Spring 的應用看起來象什么?
什么是 Spring 的依賴注入?
..........
微服務面試題
服務架構有哪些優勢?
設計微服務的最佳實踐是什么?
微服務架構的優缺點是什么?
在使用微服務架構時,您面臨哪些挑戰?
SOA 和微服務架構之間的主要區別是什么?
什么是 Spring 引導的執行器?