Java 开发常见面试知识点梳理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
1、Java 部分

设计模式:
单例模式(懒汉式、饿汉式、双重锁)
工厂模式(简单工厂、工厂方法、抽象工厂)
代理模式(静态代理、动态代理)
策略模式(解耦算法与业务)
观察者模式(发布-订阅模式)
装饰者模式(功能扩展)

并发:
Java 线程基础(线程创建、状态、生命周期)
线程池(ThreadPoolExecutor 原理、线程池优化)
并发工具类(CountDownLatch、CyclicBarrier、Semaphore)
锁机制(synchronized、ReentrantLock、公平锁、读写锁)
CAS 与原子操作(Atomic 类的实现原理、ABA 问题)
volatile 与内存可见性(happens-before 原则)
AQS(AbstractQueuedSynchronizer)原理(锁的底层实现)
并发容器(ConcurrentHashMap 原理、CopyOnWriteArrayList)

集合框架:
List(ArrayList、LinkedList 区别)
Set(HashSet、TreeSet、LinkedHashSet)
Map(HashMap、TreeMap、LinkedHashMap、ConcurrentHashMap)
Fail-fast 与 fail-safe(遍历过程中修改问题)
HashMap 的底层原理(链表转红黑树的条件)

JVM:
JVM 内存模型(堆、栈、方法区、程序计数器)
类加载机制(双亲委派模型、类加载器)
垃圾回收算法(标记-清除、标记-整理、复制算法)
垃圾回收器(Serial、Parallel、CMS、G1 原理)
JVM 性能调优(JVM 参数、内存分析工具、GC 日志分析)
类文件结构(字节码结构、方法区细节)


2、框架部分

Spring:
Spring IOC 容器(Bean 的生命周期、依赖注入)
AOP 原理(动态代理、CGLib 实现)
事务管理(声明式事务、事务传播机制)
Spring MVC(请求处理流程、DispatcherServlet、HandlerMapping)
Spring Boot(自动配置原理、嵌入式容器)
Spring Cloud(服务注册与发现、负载均衡、断路器)

MyBatis:
MyBatis 基础(SQL 映射、动态 SQL、缓存机制)
一级缓存、二级缓存的原理和区别
MyBatis 插件机制(拦截器实现、性能优化)
性能调优(懒加载、批量处理、SQL 优化)


3、缓存

Redis 的基本数据结构:
String、List、Set、Sorted Set、Hash、Bitmap、HyperLogLog、Geo

大Key 和 热Key:
概念,如何解决

大Key问题:
如何拆分大Key,避免阻塞 Redis 线程

热Key问题:
热点数据导致单节点压力过大,如何通过分片或缓存穿透防止单点瓶颈

持久化:
RDB(快照)机制(优点、缺点、触发条件)
AOF(Append Only File)机制(优点、缺点、重写策略)
混合持久化(RDB+AOF 的结合)

Redis 高可用:
主从复制(异步复制的原理)
哨兵模式(自动故障转移)
Redis Cluster(分片、槽位映射、Gossip 协议)
持久化与高可用的权衡


4、MySQL

事务相关:
ACID 原则(原子性、一致性、隔离性、持久性)
事务隔离级别(读未提交、读已提交、可重复读、串行化)
锁机制(共享锁、排他锁、行锁、表锁)
MVCC(多版本并发控制,InnoDB 如何实现可重复读)

死锁:
概念及其解决办法(死锁检测、回滚机制)

SQL 优化:
索引设计与优化(覆盖索引、最左前缀原则、索引下推)
慢查询分析(explain、索引扫描、全表扫描)
分库分表(垂直拆分、水平拆分、分片策略)
读写分离(主从复制、读从库、写主库)


5、消息队列

消息类型:
点对点(Queue):消息只能由一个消费者消费
发布-订阅(Topic):消息广播给多个订阅者
延时消息:如 RabbitMQ 的 TTL 队列或 Kafka 延时消息
事务消息:RocketMQ 事务消息,用于实现分布式事务

消息队列架构:
Broker、Producer、Consumer 模型(生产者、消费者、Broker 的架构)

消息确认机制:
消息成功消费的确认流程,避免消息丢失

负载均衡:
如何平衡消费者之间的消费压力

可靠投递:
消息持久化(消息落盘,防止 Broker 宕机导致消息丢失)
幂等性保障(如何避免重复消费的问题,如幂等消费逻辑)
消息投递重试机制(失败后重试策略,死信队列)

消息堆积:
消息积压问题:由于消费速度跟不上生产速度,消息在队列中堆积
如何应对:增加消费者并行消费能力、削峰填谷


6、分布式

CAP 理论:
Consistency:一致性
Availability:可用性
Partition Tolerance:分区容错性
CAP 不可能三角:只能同时满足两者,典型场景举例

微服务架构:
服务拆分与通信(REST、RPC、gRPC)
服务发现(Zookeeper、Eureka、Consul)
负载均衡(Ribbon、Nginx、Spring Cloud LoadBalancer)
服务容错(Hystrix、Sentinel 实现熔断降级)

服务治理:
配置管理(Spring Cloud Config、Nacos)
服务监控(Prometheus、Grafana、Sleuth)
链路追踪(Zipkin、Jaeger,分布式追踪系统)

7、项目准备
打赏
  • Copyrights © 2017 - 2025 杨海波
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信