1000道互联网 Java 工程师面试题
内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、
Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、
Linux 等技术栈
加微信即可获取架构视频:
备注来源:面试PDF
目录
互联网 Java 工程师面试题..........................................................................................1
........................................................................................................................................1
MyBatis 面 试题........................................................................................................ 33
1、什么是 Mybatis?............................................................................... 33
2、Mybaits 的优点:............................................................................... 33
3、MyBatis 框架的缺点:....................................................................... 34
4、MyBatis 框架适用场合:................................................................... 34
5、MyBatis 与 Hibernate 有哪些不同?.............................................. 35
第 1 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料
6、#{}和${}的区别是什么?..................................................................... 35
7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?........... 35
8、 模糊查询 like 语句该怎么写?...........................................................36
9、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,
这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,
方法能重载吗?..........................................................................................37
10、Mybatis 是如何进行分页的?分页插件的原理是什么?.............38
11、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有
哪些映射形式?..........................................................................................38
12、如何执行批量插入?........................................................................... 39
13、如何获取自动生成的(主)键值?........................................................ 40
14、在 mapper 中如何传递多个参数?.................................................. 40
15、Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?.......42
16、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之
外,还有哪些标签?..................................................................................42
18、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别
在哪里?......................................................................................................43
19、 一对一、一对多的关联查询 ?..................................................... 43
20、MyBatis 实现一对一有几种方式?具体怎么操作的?...................45
21、MyBatis 实现一对多有几种方式,怎么操作的?............................45
22、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?46
23、Mybatis 的一级、二级缓存.............................................................46
24、什么是 MyBatis 的接口绑定?有哪些实现方式?........................47
25、使用 MyBatis 的 mapper 接口调用时有哪些要求?................... 47
26、Mapper 编写有哪几种方式?.........................................................47
27、简述 Mybatis 的插件运行原理,以及如何编写一个插件。........50
ZooKeeper 面 试题...................................................................................................50
1. ZooKeeper 面试题?.......................................................................... 50
2. ZooKeeper 提供了什么?................................................................... 51
3. Zookeeper 文件系统............................................................................51
4. ZAB 协议? 52
第 2 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料
5. 四种类型的数据节点 Znode.............................................................. 52
6. Zookeeper Watcher 机制 -- 数据变更通知.................................. 53
7. 客户端注册 Watcher 实现.................................................................. 54
8. 服务端处理 Watcher 实现.................................................................. 55
9. 客户端回调 Watcher........................................................................... 55
10. ACL 权限控制机制.............................................................................. 56
11. Chroot 特性.........................................................................................57
12. 会话管理.............................................................................................. 57
13. 服务器角色.......................................................................................... 58
14. Zookeeper 下 Server 工作状态..................................................... 58
15. 数据同步.............................................................................................. 59
16. zookeeper 是如何保证事务的顺序一致性的?..............................61
17. 分布式集群中为什么会有 Master?................................................61
18. zk 节点宕机如何处理?......................................................................61
19. zookeeper 负载均衡和 nginx 负载均衡区别................................. 62
20. Zookeeper 有哪几种几种部署模式?............................................. 62
21. 集群最少要几台机器,集群规则是怎样的?.................................... 62
22. 集群支持动态添加机器吗?.............................................................. 62
23. Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永
久的?............................................................................................................63
24. Zookeeper 的 java 客户端都有哪些?............................................63
25. chubby 是什么,和 zookeeper 比你怎么看?..............................64
26. 说几个 zookeeper 常用的命令。....................................................64
27. ZAB 和 Paxos 算法的联系与区别?................................................. 64
28. Zookeeper 的典型应用场景............................................................. 64
Dubbo 面 试题.......................................................................................................... 68
1、为什么要用 Dubbo?......................................................................... 68
2、Dubbo 的整体架构设计有哪些分层?.............................................. 69
3、默认使用的是什么通信框架,还有别的选择吗?............................. 70
4、服务调用是阻塞的吗?....................................................................... 70
5、一般使用什么注册中心?还有别的选择吗?................................... 70
第 3 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料
6、默认使用什么序列化框架,你知道的还有哪些?........................... 71
7、服务提供者能实现失效踢出是什么原理?....................................... 71
8、服务上线怎么不影响旧版本?........................................................... 71
9、如何解决服务调用链过长的问题?................................................... 71
10、说说核心的配置有哪些?.................................................................71
11、Dubbo 推荐用什么协议?..............................................................72
12、同一个服务多个注册的情况下可以直连某一个服务吗?.............72
13、画一画服务注册与发现的流程图?.................................................73
14、Dubbo 集群容错有几种方案?......................................................73
15、Dubbo 服务降级,失败重试怎么做?..........................................74
16、Dubbo 使用过程中都遇到了些什么问题?..................................74
17、Dubbo Monitor 实现原理?......................................................... 74
18、Dubbo 用到哪些设计模式?..........................................................75
19、Dubbo 配置文件是如何加载到 Spring 中的?........................... 76
20、Dubbo SPI 和 Java SPI 区别?....................................................77
21、Dubbo 支持分布式事务吗?..........................................................77
22、Dubbo 可以对结果进行缓存吗?..................................................77
23、服务上线怎么兼容旧版本?.............................................................78
24、Dubbo 必须依赖的包有哪些?.......................................................78
25、Dubbo telnet 命令能做什么?......................................................78
26、Dubbo 支持服务降级吗?..............................................................79
27、Dubbo 如何优雅停机?..................................................................79
28、Dubbo 和 Dubbox 之间的区别?...............................................79
29、Dubbo 和 Spring Cloud 的区别?............................................. 80
30、你还了解别的分布式框架吗?.........................................................81
Elasticsearch 面 试题............................................................................................... 81
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据
大小,分片有多少,以及一些调优手段 。............................................81
2、elasticsearch 的倒排索引是什么...................................................... 83
3、elasticsearch 索引数据多了怎么办,如何调优,部署................. 84
4、elasticsearch 是如何实现 master 选举的....................................... 85
第 4 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料
5、详细描述一下 Elasticsearch 索引文档的过程................................. 86
6、详细描述一下 Elasticsearch 搜索的过程?..................................... 87
7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法.......... 88
8、lucence 内部结构是什么?................................................................88
9、Elasticsearch 是如何实现 Master 选举的?...................................89
10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个
master,另外 10 个选了另一个 master,怎么办?............................90
11、客户端在和集群连接时,如何选择特定的节点执行请求的?.....90
12、详细描述一下 Elasticsearch 索引文档的过程。...........................90
13、详细描述一下 Elasticsearch 更新和删除文档的过程。...............92
14、详细描述一下 Elasticsearch 搜索的过程。...................................92
15、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?
......................................................................................................................94
16、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?....94
17、对于 GC 方面,在使用 Elasticsearch 时要注意什么?............... 96
18、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?....97
19、在并发情况下,Elasticsearch 如果保证读写一致?....................97
20、如何监控 Elasticsearch 集群状态?...............................................97
21、介绍下你们电商搜索的整体技术架构。.........................................98
22、介绍一下你们的个性化搜索方案?.................................................98
23、是否了解字典树?.............................................................................98
24、拼写纠错是如何实现的?...............................................................100
Memcached 面 试题.............................................................................................. 102
1、Memcached 是什么,有什么作用?.............................................102
2、Memcached 服务分布式集群如何实现?.....................................104
3、Memcached 服务特点及工作原理是什么?.................................105
4、简述 Memcached 内存管理机制原理?........................................105
5、memcached 是怎么工作的?......................................................... 107
6、memcached 最大的优势是什么?................................................. 107
7、memcached 和 MySQL 的 query................................................. 107
8、memcached 和服务器的 local cache(比如 PHP 的 APC、mmap
第 5 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料
文件等)相比,有什么优缺点?........................................................... 108
9、memcached 的 cache 机制是怎样的?........................................ 109
10、memcached 如何实现冗余机制?...............................................109
11、memcached 如何处理容错的?...................................................110
12、如何将 memcached 中 item 批量导入导出?........................... 110
13、如果缓存数据在导出导入之间过期了,您又怎么处理这些数据呢?
....................................................................................................................111
14、memcached 是如何做身份验证的?...........................................111
15、memcached 的多线程是什么?如何使用它们?.......................112
16、memcached 能接受的 key 的最大长度是多少?...................... 112
17、memcached 最大能存储多大的单个 item?............................. 113
18、memcached 能够更有效地使用内存吗?...................................113
19、什么是二进制协议,我该关注吗?...............................................113
20 、 memcached 的 内 存 分 配 器 是 如 何 工 作 的 ? 为 什 么 不 适 用
malloc/free!?为何要使用 slabs?................................................... 114
21、memcached 是原子的吗?...........................................................114
22、如何实现集群中的 session 共享存储?.......................................115
23、memcached 与 redis 的区别?................................................... 116
Redis 面 试题........................................................................................................... 118
1、什么是 Redis?....................................................................................118
2、Redis 的数据类型?..........................................................................119
3、使用 Redis 有哪些好处?.................................................................119
4、Redis 相比 Memcached 有哪些优势?........................................ 120
5、Memcache 与 Redis 的区别都有哪些?....................................... 120
6、Redis 是单进程单线程的?..............................................................120
7、一个字符串类型的值能存储最大容量是多少?............................. 120
8、Redis 的持久化机制是什么?各自的优缺点?..............................121
9、Redis 常见性能问题和解决方案:..................................................122
10、redis 过期键的删除策略?.............................................................122
11、Redis 的回收策略(淘汰策略)?..................................................123
12、为什么 edis 需要把所有数据放到内存中?................................. 124
第 6 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料
13、Redis 的同步机制了解么?........................................................... 124
14、Pipeline 有什么好处,为什么要用 pipeline?.......................... 124
15、是否使用过 Redis 集群,集群的原理是什么?...........................125
16、Redis 集群方案什么情况下会导致整个集群不可用?............... 125
17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?......... 125
18、Jedis 与 Redisson 对比有什么优缺点?..................................... 125
19、Redis 如何设置密码及验证密码?............................................... 126
20、说说 Redis 哈希槽的概念?...........................................................126
21、Redis 集群的主从复制模型是怎样的?....................................... 126
22、Redis 集群会有写操作丢失吗?为什么?................................... 126
23、Redis 集群之间是如何复制的?................................................... 126
24、Redis 集群最大节点个数是多少?............................................... 127
25、Redis 集群如何选择数据库?....................................................... 127
26、怎么测试 Redis 的连通性?...........................................................127
27、怎么理解 Redis 事务?...................................................................127
28、Redis 事务相关的命令有哪几个?............................................... 127
29、Redis key 的过期时间和永久有效分别怎么设置?....................128
30、Redis 如何做内存优化?............................................................... 128
31、Redis 回收进程如何工作的?....................................................... 128
32、都有哪些办法可以降低 Redis 的内存使用情况呢?...................128
33、Redis 的内存用完了会发生什么?............................................... 128
34、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set
他们最多能存放多少元素?................................................................... 129
35、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证
redis 中的数据都是热点数据?............................................................. 129
36、Redis 最适合的场景?................................................................... 130
37、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定
的已知的前缀开头的,如果将它们全部找出来?............................... 131
38、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?132
39、使用过 Redis 做异步队列么,你是怎么用的?...........................132
40、使用过 Redis 分布式锁么,它是什么回事?...............................133
第 7 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料
MySQL 面 试题........................................................................................................133
1、MySQL 中有哪几种锁?.................................................................. 134
2、MySQL 中有哪些不同的表格?...................................................... 134
3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别............... 134
4、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间
的区别?................................................................................................... 136
5、CHAR 和 VARCHAR 的区别?........................................................136
6、主键和候选键有什么区别?............................................................. 136
7、myisamchk 是用来做什么的?.......................................................137
8、如果一个表有一列定义为 TIMESTAMP,将发生什么?.............137
9、你怎么看到为表格定义的所有索引?............................................. 137
10、LIKE 声明中的%和_是什么意思?................................................ 138
11、列对比运算符是什么?...................................................................138
12、BLOB 和 TEXT 有什么区别?........................................................ 138
13、MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?138
14、MyISAM 表格将在哪里存储,并且还提供其存储格式?..........139
15、MySQL 如何优化 DISTINCT?..................................................... 139
16、如何显示前 50 行?........................................................................ 139
17、可以使用多少列创建索引?...........................................................140
18、NOW()和 CURRENT_DATE()有什么区别?.................... 140
19、什么是非标准字符串类型?...........................................................140
20、什么是通用 SQL 函数?................................................................. 140
21、MySQL 支持事务吗?.................................................................... 141
22、MySQL 里记录货币用什么字段类型好........................................ 142
23、MySQL 有关权限的表都有哪几个?............................................ 142
24、列的字符串类型可以是什么?.......................................................142
25、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计
运维三年,怎么优化?...............................................................................143
26、锁的优化策略...................................................................................143
27、索引的底层实现原理和优化...........................................................144
28、什么情况下设置了索引但无法使用...............................................144
第 8 页 共 485 页
架构师交流群:142019080加QQ:985875757免费获取最新Java架构资料