# 项目概述 ## 项目简介 这是一个用于记录和追踪后端 P7 级别面试问题和答案的完整项目。 ## 目录结构 ``` /Users/yasin/code/interview/ ├── 00-项目概述/ # 项目说明(本文件) ├── questions/ # 所有面试题和答案(按主题分类) └── .git/ ``` ## 内容组织 ### questions/ 目录结构 所有面试题和答案都按主题分类在 `questions/` 目录下: #### 1. 分布式系统(9 个文件) - 分布式事务 - 分布式锁 - 分布式 ID 生成 - 一致性哈希 - CAP 理论和 BASE 理论 - 数据库分库分表 - MySQL 主从延迟 - 事务隔离级别 - 数据库锁机制 #### 2. 数据库(2 个文件) - MySQL 索引优化 - MyBatis 核心原理 #### 3. 缓存(5 个文件) - 缓存穿透/击穿/雪崩 - Redis 架构 - Redis 数据结构 - ConcurrentHashMap 原理 - LRU 缓存实现 #### 4. 消息队列(1 个文件) - 消息队列(RocketMQ/Kafka) #### 5. 并发编程(4 个文件) - Java 并发编程基础 - 线程池核心参数 - 设计模式 - 限流策略与算法 #### 6. JVM(1 个文件) - JVM 和垃圾回收 #### 7. 系统设计(10 个文件) - 秒杀系统设计 - 短链接系统设计 - LBS 附近的人设计 - 即时通讯系统设计 - 社交信息流设计 - API 网关 - 系统设计方法论 - 微服务架构 - RPC 框架 - 服务网格 #### 8. 算法与数据结构(6 个文件) - B+ 树原理 - 红黑树原理 - 跳表原理 - 时间轮算法 - LRU 缓存实现 - 算法与数据结构学习指南 #### 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 - 项目结构和工程化 - 数据库操作 ## 面试官设定 - **角色**:资深后端面试官 - **目标职级**:P7(阿里 P7 相当于资深专家/技术专家) - **技术栈**:Go/Java、微服务、分布式系统、数据库、缓存、消息队列等 ## 使用方式 1. **按主题学习**:从你感兴趣或薄弱的主题开始 2. **循序渐进**:先基础,后高级 3. **动手实践**:将代码示例运行起来 4. **定期复习**:面试前定期回顾重点内容 ## Git 提交策略 每次面试会话后会提交一个新的 git 版本,方便追踪历史记录。 ## 统计信息 - **总文件数**:60 个 - **分类数量**:13 个 - **总内容量**:约 12,000+ 行 - **覆盖主题**:分布式系统、数据库、缓存、消息队列、并发编程、JVM、系统设计、算法与数据结构、网络、安全、性能优化、中间件、运维、面试技巧、Golang 语言 ## 学习路径建议 ### 初级(1-3 个月) 1. 计算机基础 2. 后端核心(语言、并发、内存管理) 3. 数据库基础 ### 中级(3-6 个月) 1. 分布式系统基础 2. 微服务基础 3. 中间件基础 ### 高级(6 12 个月) 1. 分布式系统深入 2. 系统设计 3. 性能优化 ### P7 级别(12 个月+) 1. 架构设计能力 2. 技术广度和深度 3. 团队协作和影响力 --- **备注**:建议按照 `questions/` 目录下的主题顺序系统性地学习和准备。