Java應用開發關鍵技術與面試技巧 版權信息
- ISBN:9787302676874
- 條形碼:9787302676874 ; 978-7-302-67687-4
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:
Java應用開發關鍵技術與面試技巧 本書特色
《Java應用開發關鍵技術與面試技巧》從架構師與面試官的雙重視角出發,全面而系統地梳理了當前主流的Java應用開發關鍵技術及面試中可能涉及的核心知識點。內容覆蓋基本概念、技術原理,直至項目實踐和解決方案,為讀者提供了詳盡且實用的指導。此外,書中還收錄了大量高頻面試題,供候選人進行實戰演練。
隨著Java生態系統的迅速發展,企業在招聘過程中對候選人的專業能力提出了更高的要求。對于求職者而言,能否深入理解并掌握相關技術的廣度與深度,往往成為決定其能否脫穎而出的關鍵因素之一。通過閱讀《Java應用開發關鍵技術與面試技巧》,不僅能夠幫助您提升自身的軟件開發技能,還能讓您在激烈的求職競爭環境中更好地了解行業需求,明確個人定位,解決困惑,從而*終贏得理想的工作機會。
Java應用開發關鍵技術與面試技巧 內容簡介
本書全面介紹了現代Java應用開發核心技術和*佳實踐,旨在幫助讀者掌握企業級Java應用開發技術并能夠成功地應對名企的面試和挑戰。本書共19章,內容主要包括Spring框架、MyBatis與ORM、高并發處理、分布式協調服務、Dubbo框架、緩存技術、消息隊列、數據庫分片、分布式事務、NoSQL數據庫、微服務架構、服務治理、容錯機制、API網關。除每章章末提供的核心知識點和面試題外,本書還單獨就面試列出一章“面試籌劃”,從簡歷構造、面試攻略、面試心態、面試刷題、面試技巧、面試跟進以及面試總結,詳盡地指導讀者了解整個面試過程。
本書不僅覆蓋Java應用開發的核心技術,還結合豐富的案例分析和面試指導,既適合想學習Java企業級開發的在校學生和程序員,也適合準備Java技術面試的求職者閱讀。
Java應用開發關鍵技術與面試技巧 目錄
第1篇 應用框架第 1 章 Spring 21.1 Spring概述 21.1.1 Spring是什么 21.1.2 Spring的優點是什么 31.2 IoC 31.2.1 軟件設計的七大原則分別是什么 41.2.2 依賴倒置原則與案例分析 51.2.3 控制反轉與案例分析 61.2.4 Spring IoC的配置方式有哪些 111.2.5 BeanFactory是什么 181.2.6 FactoryBean及其應用案例 231.2.7 BeanDefinition是什么 341.2.8 ApplicationContext是什么 54第1篇 應用框架第 1 章 Spring 21.1 Spring概述 21.1.1 Spring是什么 21.1.2 Spring的優點是什么 31.2 IoC 31.2.1 軟件設計的七大原則分別是什么 41.2.2 依賴倒置原則與案例分析 51.2.3 控制反轉與案例分析 61.2.4 Spring IoC的配置方式有哪些 111.2.5 BeanFactory是什么 181.2.6 FactoryBean及其應用案例 231.2.7 BeanDefinition是什么 341.2.8 ApplicationContext是什么 541.2.9 Spring IoC的啟動過程是什么 601.3 AOP 821.3.1 AOP是什么 821.3.2 企業開發中常用的AOP技術 831.3.3 JDK動態代理使用案例 841.3.4 JDK動態代理的工作原理 871.3.5 CGLib動態代理使用案例 911.3.6 CGLib動態代理的工作原理 931.3.7 Spring AOP使用案例 1041.3.8 Spring AOP代理方式的選擇 1071.4 Spring事務管理 1081.4.1 事務的ACID特性 1081.4.2 事務并發執行引發的問題 1091.4.3 事務隔離級別及案例分析 1091.4.4 Spring事務傳播行為 1151.4.5 Spring事務使用案例 1161.4.6 Spring Boot自動事務配置 1181.4.7 Spring事務管理原理 1281.5 Spring Web MVC 1461.5.1 Spring Boot搭建MVC案例 1461.5.2 Spring MVC的工作原理及關鍵代碼分析 1481.6 Spring面試押題 1651.6.1 Spring IoC的設計思想是什么 1661.6.2 BeanFactory和FactoryBean有什么區別 1661.6.3 BeanFactory和ApplicationContext有什么區別 1661.6.4 Spring Bean的生命周期包含哪些過程 1671.6.5 Spring Bean的作用域有哪幾種 1671.6.6 Spring如何解決循環依賴 1681.6.7 Spring的自動裝配是如何實現的 1681.6.8 Spring框架中使用到哪些常用的設計模式 1681.6.9 Spring框架中有哪些類型的事件 1691.6.10 什么是AOP 1691.6.11 引入AOP能解決什么問題 1691.6.12 項目中使用AOP的場景 1701.6.13 AOP中有哪些比較重要的概念 1701.6.14 什么是JDK動態代理 1701.6.15 什么是CGLib動態代理 1711.6.16 JDK動態代理與CGLib動態代理有什么區別 1711.6.17 Spring AOP中有哪些Advice類型 1711.6.18 動態代理與靜態代理的區別是什么 1721.6.19 什么是事務,為什么需要事務 1721.6.20 事務有哪些特性 1721.6.21 MySQL支持哪些事務隔離級別 1731.6.22 Spring中有哪些事務傳播行為 1731.6.23 Spring事務在什么場景下會失效 1741.6.24 Spring事務管理遇到哪些異常不會回滾 1741.6.25 什么是Spring MVC 1741.6.26 Spring MVC的主要組件有哪些 1741.6.27 DispatcherServlet是什么,它有什么作用 1751.6.28 Spring MVC中的控制器是不是線程安全的 1751.6.29 Spring MVC的工作流程 1751.6.30 Spring MVC與Struts2有哪些異同點 176第 2 章 MyBatis 1772.1 MyBatis概述 1772.2 Spring Boot集成MyBatis案例 1782.3 使用MyBatis Generator案例分析 1812.4 MyBatis緩存分為哪幾種 1842.5 MyBatis一級緩存有哪些特性 1852.5.1 一級緩存默認是開啟的 1852.5.2 一級緩存可以優化查詢效率 1852.5.3 一級緩存會因修改而失效 1862.5.4 一級緩存僅在會話內共享 1882.6 MyBatis一級緩存的原理是什么 1892.6.1 SqlSession分析 1902.6.2 SqlSessionFactory分析 1922.6.3 Executor分析 1922.6.4 Cache分析 1932.6.5 一級緩存執行原理分析 1942.7 MyBatis二級緩存有哪些特性 2002.7.1 二級緩存非默認開啟 2002.7.2 在事務提交前二級緩存不生效 2012.7.3 在事務提交后二級緩存會生效 2022.7.4 當發生更新時二級緩存會被刷新 2042.8 MyBatis二級緩存的原理是什么 2052.9 如何編寫MyBatis插件 2112.9.1 實現Interceptor接口 2112.9.2 MyBatis插件植入 2122.9.3 MyBatis插件執行邏輯 2142.10 簡述MyBatis執行SQL的過程 2152.10.1 MyBatis創建代理對象分析 2162.10.2 MyBatis代理對象邏輯分析 2182.10.3 SQL語句執行過程分析 2232.11 MyBatis面試押題 2272.11.1 什么是MyBatis 2272.11.2 MyBatis有哪些優缺點 2272.11.3 MyBatis框架的適用場景有哪些 2272.11.4 MyBatis與Hibernate有哪些異同點 2282.11.5 MyBatis中的#{}和${}的區別是什么 2282.11.6 Mapper接口的工作原理是什么 2292.11.7 MyBatis分頁插件的原理是什么 2302.11.8 簡述MyBatis緩存的工作原理 2312.11.9 為什么MyBatis是半自動ORM框架 2312.11.10 如何提升基于MyBatis開發的應用程序的性能 2312.11.11 MyBatis如何實現數據庫的讀寫分離 232第2篇 分布式高并發第 3 章 高并發分流 2343.1 分布式架構概念解釋 2343.2 企業系統架構的演進歷程 2353.2.1 單機架構 2353.2.2 **次演進:Web服務器與數據庫獨立部署 2363.2.3 第二次演進:引入本地緩存和分布式緩存 2373.2.4 第三次演進:引入反向代理 2373.2.5 第四次演進:引入數據庫讀寫分離 2383.2.6 第五次演進:引入按業務拆分數據庫 2383.2.7 第六次演進:引入分庫分表 2403.2.8 第七次演進:引入使用LVS或F5 2403.2.9 第八次演進:通過DNS實現機房間的負載均衡 2413.2.10 第九次演進:引入NoSQL/NewSQL等技術 2423.2.11 第十次演進:應用拆分 2433.2.12 第十一次演進:引入ESB架構 2443.2.13 第十二次演進:微服務拆分 2453.2.14 第十三次演進:引入容器化架構 2463.2.15 第十四次演進:引入云平臺架構 2473.3 Nginx反向代理與負載均衡 2483.3.1 正向代理 2493.3.2 反向代理 2493.4 Nginx配置詳解 2513.5 OpenResty 2553.5.1 OpenResty的安裝 2553.5.2 OpenResty限流案例 2563.6 高并發分流面試押題 2583.6.1 什么是分布式架構 2583.6.2 什么是面向服務的架構 2583.6.3 什么是微服務架構 2583.6.4 SOA架構和微服務架構的區別和聯系 2593.6.5 什么是容器化架構 2593.6.6 正向代理與反向代理的區別是什么 2603.6.7 微服務拆分的依據 2603.6.8 OpenResty和Nginx的區別與聯系 2613.6.9 如何使用Nginx實現灰度發布 261第 4 章 分布式協調服務 2634.1 ZooKeeper的基礎知識 2634.1.1 什么是ZooKeeper 2634.1.2 什么是CAP理論 2634.1.3 ZooKeeper對CAP的支持 2654.1.4 ZooKeeper與其他注冊中心對比 2654.2 ZooKeeper有哪些節點類型 2654.3 ZooKeeper節點有哪幾種角色 2664.4 什么是ZooKeeper的Watch機制 2674.5 什么是ZooKeeper ACL權限控制 2684.6 Paxos算法的原理是什么 2694.6.1 分布式系統面臨的挑戰 2694.6.2 分布式系統難題的轉換 2704.6.3 Paxos算法的執行過程 2714.6.4 Paxos算法示例 2734.7 基于Paxos的優化算法有哪些 2754.7.1 Multi Paxos算法 2754.7.2 Fast Paxos算法 2754.8 ZAB協議的原理是什么 2764.8.1 原子廣播 2764.8.2 故障恢復 2784.8.3 ZXID生成規則 2794.9 ZooKeeper代碼分析 2794.9.1 ZooKeeper單機模式代碼分析 2814.9.2 ZooKeeper集群模式代碼分析 2844.9.3 ZooKeeper Leader選舉代碼分析 2884.10 ZooKeeper面試押題 2974.10.1 什么是ZooKeeper 2974.10.2 ZooKeeper的節點類型有哪些 2984.10.3 ZooKeeper保障的是CP還是AP機制 2984.10.4 ZooKeeper是如何實現通知機制的 2984.10.5 ZooKeeper的節點有哪幾種角色 2994.10.6 簡述Paxos算法的原理 2994.10.7 簡述ZAB協議的原理 2994.10.8 如何利用ZooKeeper實現分布式鎖 3004.10.9 ZooKeeper在哪些中間件中被使用 3004.10.10 ZooKeeper腦裂問題及其處理辦法 301第 5 章 Dubbo 3025.1 Dubbo架構解析 3025.1.1 Dubbo組件架構 3025.1.2 Dubbo分層架構 3035.2 Dubbo如何實現集群容錯 3045.2.1 Failover Cluster 3045.2.2 Failfast Cluster 3045.2.3 Failsafe Cluster 3045.2.4 Failback Cluster 3045.2.5 Forking Cluster 3045.2.6 Broadcast Cluster 3055.2.7 Available Cluster 3055.2.8 Mergeable Cluster 3055.2.9 ZoneAware Cluster 3055.2.10 Dubbo集群容錯代碼分析 3055.3 Dubbo如何實現負載均衡 3085.3.1 加權隨機策略 3085.3.2 加權輪詢策略 3085.3.3 加權*少活躍策略 3095.3.4 加權*短響應策略 3095.3.5 一致性哈希策略 3095.4 Dubbo的線程模型是什么 3125.4.1 IO線程 3135.4.2 業務線程 3145.5 Dubbo跨多注冊中心的能力 3145.6 Dubbo服務分組 3195.7 Dubbo SPI機制的原理是什么 3205.7.1 SPI和API的區別和聯系 3205.7.2 JDK SPI機制的實現 3205.7.3 JDK SPI機制原理分析 3225.7.4 Dubbo SPI機制的使用方式 3275.7.5 Dubbo SPI機制原理分析 3315.8 Dubbo面試押題 3365.8.1 Dubbo的核心功能有哪些 3365.8.2 Dubbo的核心組件有哪些 3375.8.3 簡述Dubbo服務注冊與發現的流程 3375.8.4 簡述主流RPC框架的異同點 3385.8.5 Dubbo支持哪些負載均衡策略 3385.8.6 Dubbo負載均衡在客戶端還是服務端實現 3385.8.7 Dubbo支持的通信協議 3385.8.8 簡述Dubbo SPI與Java SPI的異同點 3395.8.9 Dubbo如何實現服務提供方失效移除 3395.8.10 如何合理地設置Dubbo超時時間 340第 6 章 Redis 3416.1 Redis常用的數據類型 3416.1.1 String 3416.1.2 List 3426.1.3 Hash 3426.1.4 Set 3436.1.5 Zset 3436.2 Redis支持哪些數據結構 3436.2.1 簡單動態字符串 3446.2.2 鏈表 3446.2.3 跳躍表 3456.2.4 壓縮列表 3456.2.5 哈希表 3466.2.6 整數集合 3486.3 Redis如何實現持久化 3496.3.1 RDB 3496.3.2 AOF 3516.4 Redis主從部署架構的原理是什么 3526.5 Redis哨兵部署架構 3536.5.1 Redis哨兵架構的工作流程 3536.5.2 主觀下線 3546.5.3 客觀下線 3546.5.4 Redis哨兵仲裁 3556.5.5 哨兵領導者選舉規約 3556.5.6 哨兵領導者選舉過程 3566.5.7 Redis哨兵架構故障轉移 3566.6 Redis集群部署架構 3576.6.1 Redis集群架構的工作原理 3576.6.2 Redis集群架構數據分片 3586.6.3 Redis集群架構搭建 3586.6.4 Redis集群架構擴容 3626.6.5 Redis集群架構收縮 3686.6.6 Redis集群架構選舉 3696.7 緩存一致性解決方案有哪些 3696.7.1 方案一:先更新數據庫后更新緩存 3696.7.2 方案二:先更新緩存后更新數據庫 3706.7.3 方案三:先刪除緩存后更新數據庫 3706.7.4 方案四:先更新數據庫后刪除緩存 3716.7.5 方案五:緩存延時雙刪解決方案 3726.7.6 方案六:監聽數據庫解決方案 3746.8 緩存預熱方案有哪些 3746.9 緩存穿透及解決方案 3756.10 緩存擊穿及解決方案 3776.11 緩存雪崩及解決方案 3776.12 布隆過濾器及適用場景 3786.13 熱點緩存識別及解決方案 3806.13.1 熱點緩存識別 3806.13.2 熱點緩存解決方案 3806.14 Redis面試押題 3816.14.1 Redis是什么 3816.14.2 簡述企業開發中使用到Redis緩存的場景 3816.14.3 Redis與Guava Cache有哪些異同點 3826.14.4 Redis與Memcached相比有哪些異同點 3836.14.5 Redis為什么能實現高性能 3846.14.6 Redis支持哪些數據類型 3846.14.7 Redis內部的數據結構有哪些 3846.14.8 如何使用Redis實現計數器 3846.14.9 如何使用Redis實現消息隊列的發布訂閱 3846.14.10 如何使用Redis實現分布式鎖 3856.14.11 Redis支持的持久化機制有哪些 3856.14.12 Redis過期鍵的刪除策略有哪些 3866.14.13 Redis的內存淘汰策略有哪些 3866.14.14 Redis的線程模型是什么 3866.14.15 Redis事務有哪些優缺點 3876.14.16 Redis的部署架構有哪些 3876.14.17 什么是緩存穿透 3876.14.18 什么是緩存擊穿 3886.14.19 什么是緩存雪崩 3886.14.20 Jedis與Redisson有哪些異同點 388第 7 章 RocketMQ 3897.1 核心概念 3897.1.1 Producer 3897.1.2 Consumer 3907.1.3 Broker 3907.1.4 Topic 3907.1.5 Message Queue 3917.1.6 Tag 3917.1.7 NameServer 3917.1.8 集群消費 3917.1.9 廣播消費 3917.1.10 分區順序消息 3917.1.11 全局順序消息 3917.1.12 RocketMQ消息模型 3927.2 RocketMQ如何實現事務消息 3937.3 RocketMQ如何實現順序消息 3967.4 RocketMQ如何實現延遲消息 4007.5 RocketMQ如何實現消息重試 4047.5.1 生產者消息重試 4047.5.2 消費者消息重試 4047.5.3 消息冪等 4057.6 RocketMQ如何實現死信消息 4057.7 RocketMQ如何實現消息過濾 4067.7.1 基于tag的消息過濾 4067.7.2 基于SQL表達式的消息過濾 4087.7.3 基于消費者端的消息過濾 4107.8 RocketMQ如何實現消息負載均衡 4107.8.1 生產者端負載均衡 4107.8.2 消費者端負載均衡 4117.9 如何解決消息積壓問題 4117.9.1 消息積壓的場景 4117.9.2 消息積壓的解決方案 4127.10 RocketMQ面試押題 4127.10.1 企業開發中使用MQ的場景有哪些 4127.10.2 簡述RocketMQ的架構 4137.10.3 RocketMQ如何實現消息過濾 4137.10.4 如何保障RocketMQ的消息不重不丟 4137.10.5 RocketMQ如何實現事務消息 4137.10.6 什么是RocketMQ的半消息 4137.10.7 RocketMQ的刷盤機制是什么 4147.10.8 RocketMQ如何實現負載均衡 4147.10.9 什么是RocketMQ的死信隊列 4147.10.10 什么是消息冪等 4147.10.11 什么是RocketMQ的推模式和拉模式 4157.10.12 RocketMQ如何實現順序消息 4157.10.13 RocketMQ如何實現延遲消息 4157.10.14 簡述RocketMQ、RabbitMQ和Kafka之間的異同點 415第 8 章 Kafka 4178.1 Kafka的核心概念 4178.1.1 Kafka的基本概念 4178.1.2 Kafka的核心API 4188.2 Kafka消息處理原理 4198.2.1 Kafka架構原理 4198.2.2 Kafka的存儲機制 4208.2.3 Kafka副本機制 4238.2.4 Kafka ISR機制 4238.2.5 Kafka HW&LEO 4248.3 Kafka有哪些消息語義 4258.3.1 at most once 4258.3.2 at least once 4258.3.3 exactly once 4268.4 Kafka消息丟失的場景有哪些 4268.4.1 生產者消息丟失 4268.4.2 Broker消息丟失 4268.4.3 消費者消息丟失 4278.5 Kafka控制器的選舉流程是什么 4278.6 Kafka分區副本的選舉策略有哪些 4308.7 Kafka的協調器有哪些 4308.7.1 消費者協調器 4318.7.2 組協調器 4318.8 Kafka的分區重平衡機制有哪些 4338.8.1 RangeAssignor 4338.8.2 RoundRobinAssignor 4348.8.3 StickyAssignor 4348.9 Kafka消費者的提交方式有哪些 4348.10 Kafka面試押題 4358.10.1 Kafka是什么 4358.10.2 Kafka Replicas是如何管理的 4358.10.3 Kafka中如何確定當前應該讀取什么消息 4368.10.4 Kafka生產者發送消息有哪些模式 4378.10.5 Kafka如何實現負載均衡 4378.10.6 Kafka的Topic分區數越多越好嗎 4388.10.7 如何增強Kafka消費者的消費能力 4398.10.8 Kafka控制器是什么 4398.10.9 Kafka為什么高性能 4408.10.10 Kafka如何使用零拷貝 441第 9 章 ShardingSphere 4429.1 ShardingSphere的組成 4429.1.1 ShardingSphere-JDBC 4429.1.2 ShardingSphere-Proxy 4439.1.3 ShardingSphere-Sidecar 4439.2 核心概念 4449.2.1 分庫 4449.2.2 分表 4459.2.3 垂直分片 4459.2.4 水平分片 4459.2.5 表 4469.2.6 數據節點 4479.2.7 分片算法 4479.3 ShardingSphere如何實現分布式主鍵 4489.4 ShardingSphere支持哪些類型的事務 4499.4.1 LOCAL事務 4499.4.2 XA事務 4509.4.3 BASE事務 4519.5 ShardingSphere如何實現讀寫分離 4519.5.1 主庫和從庫 4529.5.2 主從同步 4529.5.3 ShardingSphere讀寫分離支持 4529.6 ShardingSphere支持哪些數據分片算法 4529.7 ShardingSphere-JDBC的工作原理是什么 4539.7.1 SQL解析 4539.7.2 SQL路由 4549.7.3 SQL改寫 4549.7.4 SQL執行 4549.7.5 結果歸并 4549.8 ShardingSphere面試押題 4559.8.1 ShardingSphere是什么 4559.8.2 ShardingSphere支持哪些數據庫 4559.8.3 企業開發中哪些場景會用到ShardingSphere 4569.8.4 ShardingSphere的核心功能有哪些 4569.8.5 ShardingSphere支持的數據分片技術有哪些 4579.8.6 數據分片技術有哪些優缺點 4579.8.7 ShardingSphere與Mycat有哪些異同點 4589.8.8 數據分片技術和分布式數據庫之間如何權衡 4599.8.9 如何優化一張大數據量表的查詢速度 459第 10 章 分布式事務 46110.1 什么是強一致性事務 46110.2 分布式架構理論基礎 46210.2.1 什么是CAP理論 46210.2.2 什么是BASE理論 46310.2.3 什么是2PC 46310.2.4 什么是3PC 46410.3 Atomikos分布式事務 46510.3.1 TransactionsEssentials 46610.3.2 ExtremeTransactions 46710.4 TCC分布式事務 46810.4.1 2PC和3PC的缺點 46810.4.2 TCC的原理 46810.4.3 TCC的改進 46910.5 Saga分布式事務 46910.5.1 Saga編排模式 47010.5.2 Saga控制模式 47110.6 Seata分布式事務 47310.6.1 AT一階段 47410.6.2 AT二階段 47510.6.3 AT寫隔離 47510.6.4 AT讀隔離 47710.7 基于MQ的分布式事務 47810.7.1 可靠的消息生產和消費 47810.7.2 非可靠的消息生產和消費 48010.8 分布式事務面試押題 48110.8.1 什么是分布式事務 48110.8.2 企業開發中產生分布式事務的場景有哪些 48110.8.3 強一致性、弱一致性和*終一致性的異同點 48210.8.4 什么是CAP理論 48210.8.5 什么是BASE理論 48210.8.6 分布式事務常見的解決方案有哪些 48310.8.7 簡述工作中遇到的分布式事務場景及挑戰 48310.8.8 簡述常見的中間件及其面臨的分布式事務問題 484第 11 章 MongoDB 48511.1 MongoDB支持哪些數據類型 48511.2 MongoDB的核心概念 48611.2.1 數據庫 48611.2.2 集合 48611.2.3 文檔 48711.2.4 數據字段/域 48711.2.5 索引 48711.2.6 主鍵 48811.3 MongoDB支持的索引類型 48811.3.1 單鍵索引 48811.3.2 復合索引 48911.3.3 多鍵索引 48911.3.4 地理空間索引 48911.3.5 全文索引 48911.3.6 哈希索引 48911.4 MongoDB的執行計劃 49011.5 MongoDB的索引原理是什么 49411.6 MongoDB集群搭建 49511.6.1 主從復制架構 49511.6.2 副本集架構 49611.6.3 分片集群架構 49711.7 MongoDB面試押題 49811.7.1 什么是MongoDB 49811.7.2 簡述MongoDB與傳統關系數據庫的異同點 49911.7.3 簡述MongoDB與MySQL數據庫中的概念對比 50011.7.4 簡述MongoDB與CouchBase的異同點 50011.7.5 MongoDB中的分析器有什么用途 50111.7.6 MongoDB的主節點和從節點如何實現數據同步 50111.7.7 MongoDB的ObjectId生成規則是什么 50211.7.8 企業開發中使用MongoDB的場景有哪些 50211.7.9 在MongoDB中如何處理事務 50211.7.10 MongoDB的寫關注是什么 503第 12 章 Elasticsearch 50412.1 Elasticsearch的特性有哪些 50412.2 核心概念 50412.2.1 索引 50412.2.2 索引別名 50512.2.3 類型 50612.2.4 文檔 50612.2.5 分詞 50612.2.6 分詞器 50712.2.7 keyword 51412.2.8 text 51412.3 什么是倒排索引 51412.3.1 正排索引 51512.3.2 倒排索引 51512.3.3 單詞索引 51612.3.4 FST 51712.4 Elasticsearch如何實現集群發現 51912.5 分片和副本 52012.5.1 分片 52012.5.2 副本 52012.5.3 索引寫入流程 52012.6 Elasticsearch的存儲原理是什么 52112.6.1 Segment 52112.6.2 文檔寫入 52212.6.3 Refresh 52312.6.4 Translog 52312.6.5 Segment合并 52512.7 Elasticsearch如何實現一致性 52612.7.1 寫一致性 52612.7.2 讀一致性 52612.8 Elasticsearch面試押題 52612.8.1 什么是Elasticsearch 52612.8.2 什么是倒排索引 52712.8.3 Elasticsearch與Solr有哪些異同點 52712.8.4 Elasticsearch支持的分詞器有哪些 52812.8.5 Elasticsearch中的keyword和text有什么區別 52912.8.6 Elasticsearch中的query和filter有什么區別 52912.8.7 簡述Elasticsearch的數據寫入流程 53012.8.8 Elasticsearch的數據是如何存儲的 53112.8.9 Elasticsearch如何保證讀寫一致性 53112.8.10 簡述Elasticsearch的分布式原理 53212.8.11 如何使用Elasticsearch解決深分頁問題 53312.8.12 什么是Elasticsearch Bulk API 534第3篇 微服務架構第 13 章 微服務架構演進 53613.1 單體架構 53613.2 垂直架構 53713.3 面向服務的架構 53713.4 微服務架構 53913.5 微服務架構演進面試押題 54013.5.1 什么是微服務架構 54013.5.2 微服務架構常用的RPC框架有哪些 54013.5.3 微服務架構常用的注冊中心框架有哪些 54113.5.4 微服務架構常用的負載均衡框架有哪些 54213.5.5 微服務架構常用的網關框架有哪些 54313.5.6 微服務架構常用的流量管控框架有哪些 54313.5.7 微服務架構常用的配置中心框架有哪些 54413.5.8 簡述企業開發中的微服務架構 544第 14 章 Eureka 54614.1 Eureka的核心概念 54614.1.1 服務提供方 54614.1.2 服務消費方 54614.1.3 Eureka Server 54614.1.4 Eureka Client 54614.2 Eureka的工作流程是什么 54714.3 Eureka的集群原理是什么 54814.4 Eureka面試押題 54814.4.1 什么是Eureka 54814.4.2 Eureka中的服務消費方如何感知服務提供方 54914.4.3 Eureka中的服務消費方如何選擇服務提供方 54914.4.4 Eureka中的服務消費方如何感知服務提供方下線 55014.4.5 簡述Eureka、Nacos和ZooKeeper的異同點 55014.4.6 Eureka保證了CAP中的哪幾點 551第 15 章 Ribbon 55215.1 Ribbon的工作原理是什么 55215.2 Ribbon支持哪些負載均衡策略 55315.2.1 RoundRobinRule 55315.2.2 WeightedResponseTimeRule 55415.2.3 RandomRule 55515.2.4 BestAvailableRule 55615.2.5 RetryRule 55715.2.6 AvailabilityFilteringRule 55815.2.7 ZoneAvoidanceRule 55915.3 Ribbon面試押題 56015.3.1 什么是Ribbon 56015.3.2 Ribbon與Nginx有哪些異同點 56015.3.3 Ribbon支持哪些負載均衡策略 56215.3.4 如何實現自定義的Ribbon負載均衡策略 562第 16 章 OpenFeign 56316.1 OpenFeign與Feign有哪些異同點 56316.2 OpenFeign的架構原理 56416.3 OpenFeign的實現原理是什么 56416.4 OpenFeign面試押題 56716.4.1 什么是OpenFeign 56716.4.2 OpenFeign與Feign有哪些異同點 56816.4.3 OpenFeign的工作原理是什么 56816.4.4 OpenFeign與Dubbo有哪些異同點 56816.4.5 OpenFeign與RestTemplate有什么區別 569第 17 章 Hystrix 57117.1 Hystrix的核心概念 57117.1.1 限流 57117.1.2 隔離 57117.1.3 降級 57217.1.4 熔斷 57217.1.5 緩存 57217.1.6 合并 57317.2 Hystrix的工作流程是什么 57317.3 Hystrix面試押題 57417.3.1 什么是Hystrix 57417.3.2 Hystrix的工作流程是什么 57417.3.3 Hystrix如何實現請求緩存 57517.3.4 Hystrix如何實現限流 57517.3.5 Hystrix如何實現熔斷 57517.3.6 什么場景會觸發Hystrix降級 57617.3.7 簡述Hystrix、Sentinel和Resilience4j之間的異同點 576第 18 章 API網關 57818.1 API網關概述 57818.2 多種API網關對比 57918.2.1 Nginx 57918.2.2 Zuul 57918.2.3 Kong 58018.2.4 Gateway 58118.3 API網關面試押題 58318.3.1 什么是API網關 58318.3.2 對比常見的API網關 58318.3.3 如何在網關實現用戶統一鑒權 58318.3.4 如何在網關實現灰度發布 584第4篇 面試技巧第 19 章 面試籌劃 58619.1 簡歷構造 58619.1.1 個人信息 58619.1.2 個人優勢 58819.1.3 期望職位 58819.1.4 工作經歷 58919.1.5 項目經歷 58919.1.6 教育經歷 59019.2 面試攻略 59119.2.1 海投簡歷 59119.2.2 小試牛刀 59119.2.3 厚積薄發 59219.3 面試心態 59319.3.1 候選人分析 59319.3.2 面試官分析 59519.4 面試刷題 59719.4.1 機試刷題 59719.4.2 現場面試刷題 59719.5 面試技巧 59919.5.1 合格性面試 59919.5.2 合適性面試 59919.5.3 冰山模型 60019.5.4 面試方法 60119.6 面試跟進 60319.7 面試總結 604參考文獻 607
展開全部
Java應用開發關鍵技術與面試技巧 作者簡介
周冠亞(筆名無雙)上海交大軟件工程碩士,先后就職于大潤發、美團點評和中國電信等,現就職于移動互聯網行業一家知名智能制造公司,對高并發、高可用、高性能、海量數據的分布式復雜系統的架構設計有豐富經驗,先后負責過電商、支付、營銷、供應、制造等業務領域的研發工作,現階段主要從事企業架構相關工作。在企業內經常參與招聘面試,最高記錄一年面試超400人。出版著作:《Spring 5企業級開發實戰》(與人合著)。作者個人技術星球:【IT職場說】