Java 学习路线
第一阶段:Java 基础(预计 1 - 2 个月)
- Java SE 基础
- Java 基本语法:变量、数据类型、运算符、流程控制等
- 面向对象编程:类、对象、封装、继承、多态
- 异常处理:try - catch - finally、自定义异常
- 集合框架:List、Set、Map 等常用集合及其实现类
- IO 流:文件读写、缓冲流、序列化与反序列化
- 多线程:线程创建、同步与异步、线程池
- 网络编程:Socket 通信、TCP/UDP 协议
推荐资料:
《Java 核心技术卷Ⅰ》,《Head First Java》,《Java 编程思想》,《疯狂 Java 讲义》,《Java 并发编程实战》
- Java 进阶
- 反射机制:Class 类、Method 类、Field 类等
- 泛型:泛型类、泛型方法、通配符
- 注解:自定义注解、元注解、注解处理器
- JDBC:数据库连接、CRUD 操作、事务管理
- 设计模式:单例模式、工厂模式、观察者模式等常见设计模式
推荐资料:
《Java 泛型与集合》,《Java 注解与反射实战》,《Java 数据库连接教程》,《Head First 设计模式》,《设计模式之禅》
第二阶段:Java 虚拟机(预计 1 - 2 周)
- JVM 内存结构:堆、栈、方法区、程序计数器
- 垃圾回收机制:标记 - 清除、标记 - 整理、复制、分代收集
- 类加载过程:加载、链接(验证、准备、解析)、初始化
- JVM 性能调优:JVM 参数设置、内存泄漏检测、性能监控工具
推荐资料:
《深入理解 Java 虚拟机:JVM 高级特性与最佳实践》(第三版)
第三阶段:数据库与缓存(预计 1 - 2 个月)
- MySQL
- SQL 基础:DDL、DML、DCL、TCL 语句
- 索引优化:B 树、B+树、哈希索引、全文索引
- 存储过程与触发器:创建与管理
- 事务隔离级别:脏读、不可重复读、幻读
- 数据库设计:ER 图、范式理论、表结构设计
推荐资料:
极客时间专栏《MySQL45 讲》
- Redis
- 数据结构:字符串、哈希、列表、集合、有序集合
- 持久化机制:RDB 与 AOF
- 事务与 Lua 脚本:MULTI/EXEC、EVAL
- 分布式锁:RedLock 算法、Redisson 实现
- 缓存策略:缓存击穿、缓存雪崩、缓存预热、缓存降级
推荐资料:
《Redis 深度历险》
第四阶段:Spring 框架系列(预计 2 个月)
Spring Core
- 依赖注入:Bean 定义、作用域、生命周期
- AOP 原理:切面、通知、连接点、代理对象
- Spring 容器:ApplicationContext 与 BeanFactory
- MyBatis:通过 MyBatis 连接数据库。
- Maven:管理依赖
Spring MVC
- 请求处理流程:DispatcherServlet、HandlerMapping、HandlerAdapter 等
- 注解驱动控制器:@Controller、@RequestMapping 等
- 数据绑定与验证:@ModelAttribute、BindingResult 等
- 异常处理:@ExceptionHandler、@ControllerAdvice 等
Spring Boot
- 自动配置原理:starter POMs、autoconfigure 模块等
- 嵌入式 Web 服务器:Tomcat、Jetty、Undertow 等集成与使用
- 生产就绪特性:健康检查、指标监控、外部化配置等
- 开发者工具:Spring Boot DevTools、Spring Initializr 等提高开发效率的工具集成和使用方法。
Spring 进阶(可暂时不学)
- 事务管理:声明式事务、编程式事务、事务传播行为等
- 安全管理:Spring Security 集成与使用(认证与授权)
- 分布式系统支持:Spring Cloud 简介与微服务架构概念引入(为后续扩展做准备)
第五阶段:消息队列(预计 1 - 2 周)
- RabbitMQ
- 消息模型:生产者、消费者、队列、交换机、路由键等概念介绍及使用场景说明;消息确认机制(ACK)和可靠性保证;死信队列和延迟队列实现原理及应用案例讲解。
- 集群部署:RabbitMQ 集群搭建与节点类型介绍;镜像队列原理及配置方法讲解;高可用性方案设计与实践。
- 管理界面与监控:RabbitMQ 管理插件安装与使用;界面功能介绍及操作演示;性能监控指标说明及优化建议。
第六阶段:个人项目搭建(预计 1 - 2 个月,Spring 框架和 MySQL 学完就可以开始)
选择一个合适的项目主题,例如博客系统、电商后台管理、在线教育平台等,并按照以下步骤进行搭建:
- 需求分析:明确项目功能需求、非功能需求以及用户角色。
- 技术选型:根据项目需求选择合适的技术栈,如前端技术(HTML/CSS/JavaScript/Bootstrap 等)、数据库技术(MySQL/Redis 等)、后端技术(Spring Boot 等)。
- 设计阶段:进行数据库设计(ER 图、表结构定义)、系统设计(系统架构图、模块划分与接口定义)、业务逻辑设计(流程图、时序图等)。
- 编码实现:按照设计文档进行编码实现,注意代码规范与注释。
- 测试与调试:编写单元测试用例进行单元测试,集成测试以及功能测试;发现并修复潜在问题。
- 部署上线:将项目部署到服务器或云平台上,进行压力测试与性能优化;确保项目稳定运行并满足预期需求。
- 文档编写与维护:编写项目使用说明书、开发文档等;定期对项目进行维护与升级。
第七阶段:面试