Changes: - Fixed CAP theory typo: "CP、AP、AP" → "CP、AP、CA" - Reorganized file classifications for better structure: * Moved 4 database-related files from 01-分布式系统 to 02-数据库 * Moved ConcurrentHashMap from 03-缓存 to 05-并发编程 * Renamed 消息队列(RocketMQ_Kafka).md → 消息队列_RocketMQ_Kafka.md - Updated project overview with new structure (73 files, 15 categories) - Database category now has 6 files (more cohesive) - Concurrency category now has 5 files (better organized) File movements: - 事务隔离级别.md: 01-分布式系统 → 02-数据库 - 数据库锁机制.md: 01-分布式系统 → 02-数据库 - 分库分表.md: 01-分布式系统 → 02-数据库 - MySQL主从延迟.md: 01-分布式系统 → 02-数据库 - ConcurrentHashMap原理.md: 03-缓存 → 05-并发编程 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
188 lines
4.3 KiB
Markdown
188 lines
4.3 KiB
Markdown
# 项目概述
|
||
|
||
## 项目简介
|
||
|
||
这是一个用于记录和追踪后端 P7 级别面试问题和答案的完整项目。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
/Users/yasin/code/interview/
|
||
├── 00-项目概述/ # 项目说明(本文件)
|
||
└── questions/ # 所有面试题和答案(按主题分类)
|
||
├── 01-分布式系统/
|
||
├── 02-数据库/
|
||
├── 03-缓存/
|
||
├── 04-消息队列/
|
||
├── 05-并发编程/
|
||
├── 06-JVM/
|
||
├── 07-系统设计/
|
||
├── 08-算法与数据结构/
|
||
├── 09-网络与安全/
|
||
├── 10-中间件/
|
||
├── 11-运维/
|
||
├── 12-面试技巧/
|
||
├── 13-Golang语言/
|
||
├── 14-Web3与区块链/
|
||
└── 15-简历面试/
|
||
```
|
||
|
||
## 内容组织
|
||
|
||
### questions/ 目录结构
|
||
|
||
所有面试题和答案都按主题分类在 `questions/` 目录下:
|
||
|
||
#### 1. 分布式系统(5 个文件)
|
||
- CAP理论和BASE理论
|
||
- 一致性哈希
|
||
- 分布式ID生成
|
||
- 分布式事务
|
||
- 分布式锁
|
||
|
||
#### 2. 数据库(6 个文件)
|
||
- MySQL索引优化
|
||
- MyBatis核心原理
|
||
- 事务隔离级别
|
||
- 数据库锁机制
|
||
- 分库分表
|
||
- MySQL主从延迟
|
||
|
||
#### 3. 缓存(4 个文件)
|
||
- 缓存穿透/击穿/雪崩
|
||
- Redis架构
|
||
- Redis数据结构
|
||
- LRU缓存实现
|
||
|
||
#### 4. 消息队列(1 个文件)
|
||
- 消息队列(RocketMQ/Kafka)
|
||
|
||
#### 5. 并发编程(5 个文件)
|
||
- Java并发编程基础
|
||
- 线程池核心参数
|
||
- 设计模式
|
||
- 限流策略与算法
|
||
- ConcurrentHashMap原理
|
||
|
||
#### 6. JVM(1 个文件)
|
||
- JVM和垃圾回收
|
||
|
||
#### 7. 系统设计(9 个文件)
|
||
- 秒杀系统设计
|
||
- 短链接系统设计
|
||
- LBS附近的人设计
|
||
- 即时通讯系统设计
|
||
- 社交信息流设计
|
||
- API网关
|
||
- 系统设计方法论
|
||
- 微服务架构
|
||
- RPC框架
|
||
- 服务网格
|
||
|
||
#### 8. 算法与数据结构(5 个文件)
|
||
- B+树原理
|
||
- 红黑树原理
|
||
- 跳表原理
|
||
- 时间轮算法
|
||
- 算法与数据结构学习指南
|
||
|
||
#### 9. 网络与安全(3 个文件)
|
||
- TCP/IP网络协议
|
||
- 加密与安全
|
||
- 性能优化
|
||
|
||
#### 10. 中间件(4 个文件)
|
||
- Spring Boot核心原理
|
||
- Nacos注册中心
|
||
- Dubbo框架
|
||
- Nginx
|
||
|
||
#### 11. 运维(4 个文件)
|
||
- Docker容器
|
||
- Kubernetes
|
||
- CI/CD持续集成部署
|
||
- 可观测性
|
||
|
||
#### 12. 面试技巧(1 个文件)
|
||
- 面试技巧和职业规划
|
||
|
||
#### 13. Golang语言(10 个文件)⭐
|
||
- Golang基础语法
|
||
- Goroutine和并发模型
|
||
- 错误处理和测试
|
||
- 并发编程进阶
|
||
- 内存模型和垃圾回收
|
||
- 性能优化
|
||
- HTTP和Web开发
|
||
- 接口和类型系统
|
||
- 反射和unsafe
|
||
- 项目结构和工程化
|
||
- 数据库操作
|
||
|
||
#### 14. Web3与区块链(9 个文件)
|
||
- Web3基础知识
|
||
- 智能合约安全
|
||
- DeFi协议与AMM
|
||
- Layer2扩容方案
|
||
- 跨链技术
|
||
- Golang与区块链开发
|
||
- 高并发在区块链中的应用
|
||
- 简历项目Web3迁移
|
||
|
||
#### 15. 简历面试(6 个文件)
|
||
- 项目深挖题
|
||
- 场景设计题
|
||
- 个人发展题
|
||
- 离职原因与动机
|
||
- 薪资谈判
|
||
|
||
## 面试官设定
|
||
|
||
- **角色**:资深后端面试官
|
||
- **目标职级**:P7(阿里 P7 相当于资深专家/技术专家)
|
||
- **技术栈**:Go/Java、微服务、分布式系统、数据库、缓存、消息队列等
|
||
|
||
## 使用方式
|
||
|
||
1. **按主题学习**:从你感兴趣或薄弱的主题开始
|
||
2. **循序渐进**:先基础,后高级
|
||
3. **动手实践**:将代码示例运行起来
|
||
4. **定期复习**:面试前定期回顾重点内容
|
||
|
||
## Git 提交策略
|
||
|
||
每次面试会话后会提交一个新的 git 版本,方便追踪历史记录。
|
||
|
||
## 统计信息
|
||
|
||
- **总文件数**:73 个
|
||
- **分类数量**:15 个
|
||
- **总内容量**:约 44,000+ 行
|
||
- **覆盖主题**:分布式系统、数据库、缓存、消息队列、并发编程、JVM、系统设计、算法与数据结构、网络、安全、性能优化、中间件、运维、面试技巧、Golang语言、Web3与区块链、简历面试
|
||
|
||
## 学习路径建议
|
||
|
||
### 初级(1-3 个月)
|
||
1. 计算机基础
|
||
2. 后端核心(语言、并发、内存管理)
|
||
3. 数据库基础
|
||
|
||
### 中级(3-6 个月)
|
||
1. 分布式系统基础
|
||
2. 微服务基础
|
||
3. 中间件基础
|
||
|
||
### 高级(6-12 个月)
|
||
1. 分布式系统深入
|
||
2. 系统设计
|
||
3. 性能优化
|
||
|
||
### P7 级别(12 个月+)
|
||
1. 架构设计能力
|
||
2. 技术广度和深度
|
||
3. 团队协作和影响力
|
||
|
||
---
|
||
|
||
**备注**:建议按照 `questions/` 目录下的主题顺序系统性地学习和准备。
|