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职场说】