1
1
程序员面试宝典
大厂高频Java面试题汇总
分19个部分,涵盖常见的Java面试题
超过400个经典面试题分析,详解Java的方方面面
包含专栏面试题、大厂面试题、小厂后端、老师精选题解析等
先分析问题,再给出参考答案,逻辑更清晰
大量技巧和注意点,帮助读者快速提高技术水平
咕泡科技
50W字
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
2
2
目录
前言..................................................................................................................................................................... 17
MySQL 专栏面试题(1)........................................................................................................................... 18
1.1
MySQL 索引使用有哪些注意事项呢?
.............................................................................18
1.2.
MySQL遇到过死锁问题吗,你是如何解决的?................................................................. 19
1.3.
日常工作中你是怎么优化 SQL 的?.....................................................................................21
1.4.
说说分库与分表的设计 .............................................................................................................23
1.5.
InnoDB 与MyISAM 的区别 ...................................................................................................25
1.6.
数据库索引的原理,为什么要用
B+
树,为什么不用二叉树? ......................................35
1.7.
聚集索引与非聚集索引的区别................................................................................................ 41
1.8.
limit 1000000 加载很慢的话,你是怎么解决的呢? .................................................. 43
1.9.
如何选择合适的分布式主键方案呢?....................................................................................46
1.10.
事务的隔离级别有哪些?MySQL 的默认隔离级别是什么?.........................................46
1.11.
在高并发情况下,如何做到安全的修改同一行数据? ....................................................55
1.12.
数据库的乐观锁和悲观锁。 .................................................................................................. 55
1.13.
SQL 优化的一般步骤是什么,怎么看执行计划(explain), 如何理解其中各个字
段的含义。 ................................................................................................................................57
1.14.
select for update 有什么含义,会锁表还是锁行还是其他 ..........................................58
1.15.
MySQL 事务的四大特性以及实现原理...............................................................................60
1.16.
如果某个表有近千万数据,CRUD比较慢,如何优化。 .................................................63
1.17.
如何写 sql 能够有效的使用到复合索引............................................................................. 64
1.18.
mysql 中in 和exists 的区别 ................................................................................................. 64
1.19.
数据库自增主键可能遇到什么问题。..................................................................................66
1.20.
MVCC熟悉吗,它的底层原理?..........................................................................................66
1.21.
数据库中间件了解过吗,sharding,jdbc,mycat?....................................................67
1.22.
MYSQL 的主从延迟,你怎么解决?.................................................................................. 67
1.23.
说一下大表查询的优化方案 .................................................................................................. 69
1.24.
什么是数据库连接池?为什么需要数据库连接池呢?........................................................ 69
1.25.
一条 SQL 语句在 MySQL 中如何执行的?.......................................................................70
1.26.
InnoDB引擎中的索引策略,了解过吗? ...........................................................................72
1.27.
一条 sql 执行过长的时间,你如何优化,从哪些方面入手? ........................................72
1.28.
MYSQL数据库服务器性能分析的方法命令有哪些?........................................................ 73
1.29.
Blob 和text 有什么区别?....................................................................................................73
1.30.
mysql里记录货币用什么字段类型比较好? ....................................................................73
1.31.
Mysql中有哪几种锁,列举一下?...................................................................................... 73
1.32.
Hash索引和B+树区别是什么?你在设计索引是怎么抉择的?.................................... 74
1.33.
mysql的内连接、左连接、右连接有什么区别?............................................................. 74
1.34.
说说MySQL的基础架构图 .....................................................................................................75
1.35.
什么是内连接、外连接、交叉连接、笛卡尔积呢?........................................................ 75
1.36.
说一下数据库的三大范式 .......................................................................................................77
1.37.
Mysql 的binlog 有几种录入格式?分别有什么区别?..................................................77
1.38.
InnoDB引擎的 4 大特性,了解过吗...................................................................................77
1.39.
索引有哪些优缺点?索引有哪几种类型? .........................................................................78
1.40.
创建索引有什么原则呢? ..................................................................................................... 80
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
3
3
1.41. 创建索引的三种方式 ..............................................................................................................81
1.42. 百万级别或以上的数据,你是如何删除的?.....................................................................81
1.43. 什么是最左前缀原则?什么是最左匹配原则?.................................................................81
1.44. B 树和 B+树的区别,数据库为什么使用B+树而不是B树?......................................... 82
1.45. 覆盖索引、回表等这些,了解过吗? ..................................................................................95
1.46. 非聚簇索引一定会回表查询吗?..........................................................................................96
1.47. 联合索引是什么?为什么需要注意联合索引中的顺序?................................................96
1.48. 数据库隔离级别与锁的关系.................................................................................................. 97
1.49. 聊聊 InnoDb 的锁,什么是死锁?怎么解决?................................................................97
1.50. count(1)、count(*) 与 count(列名) 的区别?..............................................................111
1.51. 什么是存储过程?有哪些优缺点? ................................................................................... 112
1.52. SQL 约束有哪几种呢? ....................................................................................................... 113
1.53.
varchar(50)中 50 的涵义
...............................................................................................114
1.54.
mysql 中int(20)和 char(20)以及 varchar(20)的 区别
...................................... 114
1.55.
drop、delete 与truncate 的区别
..............................................................................114
1.56.
UNION 与UNION ALL 的区别?
...............................................................................114
1.57.
SQL 的生命周期?
............................................................................................................ 116
1.58.
一条 Sql 的执行顺序?
....................................................................................................116
1.59.
关心过业务系统里面的 sql 耗时吗?统计过慢查询吗?对慢查询都怎么优化
过?
......................................................................................................................................... 117
1.60.
主键使用自增 ID 还是 UUID,为什么?mysql 自增主键用完了怎么办?
117
1.61.
MySQL 数据库 cpu 飙升的话,要怎么处理呢?
.................................................118
1.62.
读写分离常见方案?
.........................................................................................................123
1.63.
MySQL的复制原理以及流程
.........................................................................................123
1.64.
Innodb 的事务实现原理?
............................................................................................124
1.65.
谈谈 MySQL 的 Explain
.................................................................................................125
1.66.
Innodb 的事务与日志的实现方式
.............................................................................. 125
1.67.
你们数据库是否支持 emoji 表情存储,如果不支持,如何操作?
................126
更换字符集 utf8-->utf8mb4 ....................................................................................................126
1.68.
一个 6 亿的表 a,一个 3 亿的表 b,通过外间 tid 关联, 你如何最快地查询
出满足条件的第 50000 到第 50200 中的这 200 条数据记录。
....................126
1.69.
Mysql 一条 SQL 加锁分析
............................................................................................ 127
1.70.
Mysql如何解决幻读问题
................................................................................................127
Redis 专栏面试题(2)............................................................................................................................130
2.1.
什么是 Redis?它主要用来什么的?
.............................................................................. 130
2.2.
说说 Redis 的基本数据结构类型
......................................................................................131
2.3.
Redis 为什么这么快?
.........................................................................................................136
2.4.
什么是缓存击穿、缓存穿透、缓存雪崩?
..................................................................... 154
2.5.
什么是热 Key 问题,如何解决热 key 问题
...................................................................163
2.6.
Redis 过期策略和内存淘汰策略
....................................................................................... 165
2.7
说说 Redis 的常用应用场景
.................................................................................................168
2.8
Redis 持久化有哪几种方式,怎么选?
............................................................................... 172
2.9
怎么实现 Redis 的高可用?(Redis 主从、哨兵、集群)
............................................. 176
2.10
使用过 Redis 分布式锁嘛?有哪些注意点呢?............................................................206
2.11
使用过 Redisson 嘛?说说它✁原理
.............................................................................212
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
4
4
2.12
什么✁ Redlock 算法
.........................................................................................................213
2.13
Redis ✁跳跃表
....................................................................................................................215
2.14
MySQL 与Redis 如何保证双写一致性
....................................................................... 217
2.15
为什么 Redis 6.0 之后改多线程呢?
............................................................................221
2.16
聊聊 Redis 事务机制
..........................................................................................................222
2.17
Redis ✁ Hash 冲突怎么办
............................................................................................. 223
2.18
在生成 RDB 期间,Redis 可以同时处理写请求么?
..............................................226
2.19
Redis 底层,使用✁什么协议?
.......................................................................................226
2.20
布隆过滤器
.............................................................................................................................226
2.21
Redis存在线程安全问题吗?为什么?
.........................................................................229
2.22
请描述Redis的缓存淘汰策略
...........................................................................................231
2.23
Redis多线程模型怎么理解,那它会有线程安全问题吗?
.....................................232
面试点评 .......................................................................................................................................................... 233
2.24
Redis主从复制的原理
........................................................................................................233
2.25
Redis中AOF 重写的过程描述一下
................................................................................235
还需要保证数据的一致 ................................................................................................................... 238
2.26
Redis哨兵机制和集群有什么区别?
.............................................................................238
2.27
Redis的理解
..........................................................................................................................242
消息队列专栏面试题(3)...........................................................................................................................245
3.1
什么是消息队列........................................................................................................................245
3.2
消息队列有哪些使用场景 ....................................................................................................... 247
3.3
消息队列如何解决消息丢失问题?...................................................................................... 252
3.4
消息队列如何保证消息的顺序性。...................................................................................... 254
3.5
消息队列有可能发生重复消费,如何避免,如何做到幂等?........................................ 256
3.6
什么是幂等?如何解决幂等性问题?.................................................................................. 264
3.7
如何处理消息队列✁消息积压问题...................................................................................... 266
3.8
消息队列技术选型,Kafka 还✁ RocketMQ,还✁
RabbitMQ
...........................268
3.9
消息中间件如何做到高可用 ...................................................................................................270
3.10
如何保证数据一致性,事务消息如何实现 ....................................................................... 271
3.11
让你写一个消息队列,该如何进行架构设计?...............................................................278
3.12
什么叫做阻塞队列的有界和无界........................................................................................281
3.13
谈谈你对RabbitMQ工作原理的理解 ................................................................................283
3.14
Rabbit的消息可靠传输如何保证........................................................................................287
3.15
RabbitMQ如何实现高可用.................................................................................................288
3.16
RabbitMQ的消息如何实现路由?.................................................................................... 295
计算机网路专栏面试题(4)...................................................................................................................... 302
4.1
说说 HTTP 常用的状态码及其含义? ................................................................................302
4.2
HTTP 常用的请求方式,区别和用途? ......................................................................303
4.3
请简单说一下你 了解的端口及对应的服务? .............................................................304
4.4
说下计算机网络 体系结构 .................................................................................................. 305
4.5
如何理解 HTTP 协议✁ 无状态✁ .................................................................................. 307
4.6
从浏览器地址栏 输入 url 到显示主页✁过程 ............................................................309
4.7
说下 HTTP 1.0 ,1.1 ,2.0 ✁ 区别 ............................................................................. 311
4.8
POST 和 GET 有哪些区别? ..........................................................................................313
4.9
在交互过程中如 果数据传送完了,还不想断开连➓ 怎么办, 怎么维持? ... 313
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
5
5
4.10
HTTP 如何实现长连➓?在什么时候会超时? ......................................................313
4.11
HTTP 与 HTTPS 的区别。 ...........................................................................................314
4.12
Https 流程✁怎样✁? ................................................................................................... 315
4.13
说说 HTTP ✁状态码,301 和 302 ✁ 区别? .....................................................316
4.14
说说什么✁数字签名? 什么✁ 数字证书? ............................................................. 317
4.15
对称加密与非对 称加密有什么区别 .............................................................................318
4.16
说说 DNS ✁解析过程? ................................................................................................319
4.17
什么✁ CSR F 攻击,如何避免 .....................................................................................321
4.18
聊聊五层计算机 网络体系结构中,每一层对应✁ 网络协议有哪些? ............324
4.19
说说 WebSocket 与socket ✁ 区别 ....................................................................... 326
4.20
什么✁ Do S、DDoS、DRDoS 攻击? ...................................................................326
4.21
什么✁ XSS 攻击,如何避免? ......................................................................................326
4.22
Http 请求✁ 过程与原理 .................................................................................................328
4.23
forward 和 redirect ✁区别? .................................................................................328
4.24
聊聊 SQL 注入? ...............................................................................................................331
4.25
请详细介绍一下 TCP ✁三次握手机制 ..................................................................... 333
4.26
TCP 握手为什么 ✁ 三次,为什么不能两次?不能四次? ..................................338
4.27
TCP 四次挥手过程? ..........................................................................................................340
4.28
TCP 挥手为什么需要四次呢? .....................................................................................342
4.29
TCP 四次挥手过程中,为什么需要等待 2MSL,才进入CLOSED 关闭状态344
4.30
说说 TCP ✁如何确保可靠性✁ 呢? ..........................................................................345
4.31
说说 TCP ✲文首部有哪些字段,其作用又分别✁ 什么? ................................346
4.32
请简述 TCP 和 UDP 的区别 ........................................................................................348
4.33
说说 TCP 重传机制 ............................................................................................................ 349
4.34
聊聊 TCP ✁滑动窗口 ......................................................................................................355
4.35
说说 TCP ✁流量控制? .................................................................................................357
4.36
TCP ✁ 拥塞控制 .................................................................................................................359
4.37
说说半连➓队列和 SYN Flood 攻击✁ 关系 ..........................................................369
4.38
TCP ✁ 粘包和拆包 ............................................................................................................ 373
4.39
Nag le 算法与延迟确认 .................................................................................................. 375
4.40
IP 地址有哪些分类? ....................................................................................................... 377
4.41
说下 ARP 协议✁ 工作过程? ....................................................................................... 379
4.42
有了 IP 地址,为什么还要用 MAC 地址? ...........................................................379
4.43
TCP 和 UDP 分别对应✁ 常见应用层协议有哪些? ........................................... 381
4.44
聊聊保活计时器✁ 作用 .................................................................................................... 381
4.45
聊聊 ARP 协议 ................................................................................................................... 382
4.46
forward 和 redirect ✁区别? .................................................................................383
4.47
URI 和URL ✁区别 ...........................................................................................................385
4.48
Session 和 Cookie ✁区别。 ....................................................................................387
Zookeeper 专栏面试题(5)....................................................................................................................390
5.1
面试官:工作中使用过 Zookeeper 嘛?你知道它✁什么,有什么用途呢? ............390
5.2
面试官:说下什么✁命名服务,什么✁配置管理,又什么 ............................................ 394
5.3
面试官:你提到了 znode 节点,那你知道 znode 有几种类型呢?zookeeper ✁数
据模型✁怎样✁呢?.............................................................................................................396
5.4
面试官:你知道 znode 节点里面存储✁✁什么吗?每个 ............................................ 398
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育
咕泡教育