《前端转全栈必备:Java后端开发完整学习清单》

112 阅读14分钟

Java开发学习清单

面向前端转全栈的详细学习路径

📚 目录


阶段一:Java语言基础

1.1 Java语法基础

  • 基本数据类型

    • 8种基本类型:byte、short、int、long、float、double、char、boolean
    • 包装类型:Byte、Short、Integer、Long、Float、Double、Character、Boolean
    • 自动装箱与拆箱
    • 类型转换:隐式转换、显式转换
    • 字符串:String、StringBuilder、StringBuffer
  • 控制流语句

    • 条件语句:if-else、switch-case
    • 循环语句:for、while、do-while、增强for循环
    • 跳转语句:break、continue、return
    • 标签语句的使用
  • 面向对象编程

    • 类与对象:定义、实例化、成员变量、成员方法
    • 构造方法:默认构造、有参构造、构造方法重载
    • 封装:访问修饰符(private、protected、public、default)
    • 继承:extends关键字、super关键字、方法重写
    • 多态:方法重载、方法重写、向上转型、向下转型
    • 抽象类:abstract关键字、抽象方法
    • 接口:interface关键字、默认方法、静态方法、函数式接口
    • 内部类:成员内部类、静态内部类、局部内部类、匿名内部类

1.2 异常处理

  • 异常体系
    • Throwable、Error、Exception
    • RuntimeException vs CheckedException
    • 常见异常类型:NullPointerException、ArrayIndexOutOfBoundsException等
  • 异常处理机制
    • try-catch-finally语句
    • try-with-resources语句
    • throws关键字
    • throw关键字
    • 自定义异常类

1.3 集合框架

  • Collection接口
    • List接口:ArrayList、LinkedList、Vector
    • Set接口:HashSet、LinkedHashSet、TreeSet
    • Queue接口:LinkedList、PriorityQueue、ArrayDeque
  • Map接口
    • HashMap、LinkedHashMap、TreeMap、Hashtable
    • ConcurrentHashMap(线程安全)
  • 迭代器
    • Iterator接口
    • ListIterator接口
    • 增强for循环原理
  • 比较器
    • Comparable接口
    • Comparator接口
    • Lambda表达式比较器

1.4 泛型

  • 泛型基础
    • 泛型类、泛型方法、泛型接口
    • 类型擦除机制
    • 通配符:?、? extends T、? super T
    • 泛型边界:上界、下界

1.5 Java 8+ 新特性

  • Lambda表达式
    • 语法格式:(参数) -> {方法体}
    • 函数式接口:@FunctionalInterface
    • 方法引用:::操作符
  • Stream API
    • 创建Stream:集合.stream()、Stream.of()、Stream.generate()
    • 中间操作:filter、map、flatMap、distinct、sorted、limit、skip
    • 终端操作:forEach、collect、reduce、count、anyMatch、allMatch
    • 并行流:parallelStream()
  • Optional类
    • of()、ofNullable()、empty()
    • isPresent()、ifPresent()、orElse()、orElseGet()
    • map()、flatMap()、filter()
  • 时间日期API
    • LocalDate、LocalTime、LocalDateTime
    • Instant、Duration、Period
    • DateTimeFormatter格式化
    • ZoneId时区处理

1.6 并发编程

  • 线程基础
    • Thread类、Runnable接口
    • 线程生命周期:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED
    • 线程创建方式:继承Thread、实现Runnable、实现Callable
  • 线程同步
    • synchronized关键字:同步方法、同步代码块
    • volatile关键字:可见性、禁止重排序
    • Lock接口:ReentrantLock、ReadWriteLock
    • 死锁问题与避免
  • 线程池
    • ExecutorService接口
    • ThreadPoolExecutor参数配置
    • Executors工厂类:newFixedThreadPool、newCachedThreadPool、newSingleThreadExecutor
    • Future接口、CompletableFuture异步编程
  • 并发工具类
    • CountDownLatch、CyclicBarrier、Semaphore
    • AtomicInteger、AtomicLong、AtomicReference
    • ConcurrentHashMap、CopyOnWriteArrayList

1.7 I/O操作

  • 文件I/O
    • File类:文件操作、目录操作
    • FileInputStream、FileOutputStream
    • FileReader、FileWriter
    • BufferedReader、BufferedWriter
  • 网络I/O
    • Socket编程基础
    • ServerSocket、Socket
    • URL、URLConnection
  • NIO
    • Channel、Buffer、Selector
    • ByteBuffer、CharBuffer
    • FileChannel、SocketChannel

1.8 JVM基础

  • 内存结构
    • 堆内存:新生代、老年代
    • 方法区(元空间)
    • 程序计数器、虚拟机栈、本地方法栈
  • 垃圾回收
    • GC算法:标记清除、标记整理、复制算法
    • 垃圾收集器:Serial、Parallel、CMS、G1、ZGC
    • GC调优参数
  • 类加载机制
    • 类加载过程:加载、验证、准备、解析、初始化
    • 类加载器:Bootstrap、Extension、Application
    • 双亲委派模型

阶段二:Web后端开发

2.1 Servlet基础

  • HTTP协议
    • HTTP请求方法:GET、POST、PUT、DELETE、PATCH
    • HTTP状态码:200、201、400、401、403、404、500
    • HTTP头部:Content-Type、Authorization、Cookie
    • 请求体、响应体格式
  • Servlet生命周期
    • init()、service()、destroy()方法
    • ServletConfig、ServletContext
    • 请求转发、重定向
  • 会话管理
    • Cookie机制:设置、读取、过期时间
    • Session机制:创建、获取、销毁
    • URL重写

2.2 Spring框架

  • IoC容器
    • Bean定义:@Component、@Service、@Repository、@Controller
    • 依赖注入:@Autowired、@Resource、@Inject
    • 作用域:singleton、prototype、request、session
    • 生命周期:@PostConstruct、@PreDestroy
  • AOP面向切面
    • 切面:@Aspect
    • 切点:@Pointcut表达式
    • 通知:@Before、@After、@Around、@AfterReturning、@AfterThrowing
    • 连接点、切点、切面概念
  • 配置管理
    • @Configuration、@Bean
    • @PropertySource、@Value
    • @Profile环境配置
    • 条件装配:@Conditional

2.3 Spring Boot

  • 自动配置
    • @SpringBootApplication注解
    • 自动配置原理:@EnableAutoConfiguration
    • 条件注解:@ConditionalOnClass、@ConditionalOnProperty
  • 配置管理
    • application.properties/yml配置
    • @ConfigurationProperties绑定配置
    • 多环境配置:dev、test、prod
    • 外部化配置:命令行参数、环境变量
  • Starter机制
    • spring-boot-starter-web
    • spring-boot-starter-data-jpa
    • spring-boot-starter-security
    • 自定义Starter开发

2.4 Spring MVC

  • 控制器
    • @Controller、@RestController
    • @RequestMapping、@GetMapping、@PostMapping
    • 路径变量:@PathVariable
    • 请求参数:@RequestParam、@RequestBody
    • 请求头:@RequestHeader
  • 参数校验
    • Hibernate Validator注解:@NotNull、@NotBlank、@Email、@Size
    • @Valid、@Validated注解
    • 自定义校验注解
  • 异常处理
    • @ControllerAdvice全局异常处理
    • @ExceptionHandler异常处理方法
    • 自定义异常类
  • 响应处理
    • ResponseEntity返回响应
    • @ResponseBody、@ResponseStatus
    • 视图解析器配置

2.5 数据访问层

  • JPA/Hibernate
    • 实体映射:@Entity、@Table、@Id、@GeneratedValue
    • 字段映射:@Column、@Temporal、@Enumerated
    • 关联映射:@OneToOne、@OneToMany、@ManyToOne、@ManyToMany
    • 懒加载:@Lazy、FetchType.LAZY
    • 级联操作:CascadeType
  • 查询方式
    • 方法名查询:findBy、countBy、deleteBy
    • @Query注解:JPQL查询
    • @Query注解:原生SQL查询
    • Criteria API动态查询
  • Spring Data JPA
    • Repository接口:CrudRepository、PagingAndSortingRepository、JpaRepository
    • 自定义Repository方法
    • @Modifying、@Transactional
  • 事务管理
    • @Transactional注解
    • 事务传播行为:REQUIRED、REQUIRES_NEW、SUPPORTS
    • 事务隔离级别:READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READ、SERIALIZABLE
    • 事务回滚:rollbackFor、noRollbackFor

2.6 API设计

  • RESTful设计
    • 资源命名规范
    • HTTP方法语义
    • 状态码使用规范
    • 版本控制:URL版本、Header版本
  • 分页与排序
    • Pageable接口
    • Page、Slice分页结果
    • 排序参数处理
  • 错误处理
    • 统一错误响应格式
    • 业务异常码设计
    • 参数校验错误处理

2.7 文档与测试

  • API文档
    • Swagger/OpenAPI 3.0
    • @ApiOperation、@ApiParam注解
    • 接口分组、标签管理
  • 单元测试
    • JUnit 5:@Test、@BeforeEach、@AfterEach
    • Mockito:@Mock、@InjectMocks、when().thenReturn()
    • Spring Boot Test:@SpringBootTest、@WebMvcTest
  • 集成测试
    • @DataJpaTest数据层测试
    • @WebMvcTest控制器测试
    • TestContainers数据库测试

阶段三:数据存储与缓存

3.1 关系型数据库

  • MySQL基础
    • 数据类型:INT、VARCHAR、TEXT、DATETIME、DECIMAL
    • 约束:PRIMARY KEY、FOREIGN KEY、UNIQUE、NOT NULL
    • 索引:B+树索引、哈希索引、复合索引
    • 查询优化:EXPLAIN执行计划
  • SQL进阶
    • 复杂查询:子查询、关联查询、UNION
    • 窗口函数:ROW_NUMBER、RANK、DENSE_RANK
    • 存储过程、触发器
    • 事务:ACID特性、隔离级别
  • 数据库设计
    • 范式:1NF、2NF、3NF、BCNF
    • 反范式设计
    • 分库分表策略
    • 读写分离架构

3.2 连接池与ORM

  • 连接池配置
    • HikariCP:高性能连接池
    • 连接池参数:maximumPoolSize、minimumIdle、connectionTimeout
    • 连接池监控:JMX、指标收集
  • MyBatis
    • Mapper接口定义
    • XML映射文件:resultMap、sql片段
    • 动态SQL:if、choose、foreach
    • 分页插件:PageHelper

3.3 Redis缓存

  • Redis基础
    • 数据类型:String、Hash、List、Set、ZSet
    • 常用命令:SET、GET、HSET、HGET、LPUSH、RPOP
    • 过期策略:TTL、EXPIRE
  • 缓存策略
    • Cache Aside模式
    • Read Through模式
    • Write Through模式
    • Write Behind模式
  • Spring Cache
    • @Cacheable、@CacheEvict、@CachePut
    • CacheManager配置
    • 缓存key生成策略
  • 分布式应用
    • 分布式锁:SET NX EX
    • 限流:滑动窗口、令牌桶
    • 消息队列:Pub/Sub模式

3.4 消息队列

  • Kafka
    • 主题(Topic)、分区(Partition)、副本(Replica)
    • 生产者:acks、retries、batch.size
    • 消费者:group.id、auto.offset.reset
    • 事务消息、幂等性
  • RabbitMQ
    • Exchange、Queue、Binding
    • 消息确认机制:ACK、NACK
    • 死信队列、延迟队列
    • 集群部署
  • Spring集成
    • @KafkaListener、@RabbitListener
    • 消息序列化:JSON、Avro
    • 错误处理、重试机制

3.5 搜索引擎

  • Elasticsearch基础
    • 索引(Index)、类型(Type)、文档(Document)
    • 映射(Mapping)、分析器(Analyzer)
    • 查询DSL:match、term、range、bool
    • 聚合查询:terms、date_histogram、metrics
  • Spring Data Elasticsearch
    • @Document、@Field注解
    • ElasticsearchRepository
    • 自定义查询方法

阶段四:安全与认证

4.1 Spring Security

  • 认证机制
    • Authentication、Authorization概念
    • UserDetailsService、UserDetails
    • PasswordEncoder密码加密
    • 自定义登录页面
  • 授权机制
    • 基于角色的访问控制:@PreAuthorize、@PostAuthorize
    • 方法级安全:@Secured、@RolesAllowed
    • 资源级安全:URL模式匹配
  • 过滤器链
    • SecurityFilterChain配置
    • 自定义过滤器
    • 异常处理:AuthenticationEntryPoint、AccessDeniedHandler

4.2 JWT认证

  • JWT基础
    • JWT结构:Header、Payload、Signature
    • 对称加密:HMAC算法
    • 非对称加密:RSA算法
  • Token管理
    • Access Token、Refresh Token
    • Token过期时间设置
    • Token刷新机制
    • Token黑名单机制
  • Spring Security集成
    • JwtAuthenticationFilter
    • JwtTokenProvider
    • 无状态认证配置

4.3 OAuth2

  • OAuth2流程
    • 授权码模式(Authorization Code)
    • 客户端凭证模式(Client Credentials)
    • 密码模式(Resource Owner Password)
    • 简化模式(Implicit)
  • Spring Security OAuth2
    • Authorization Server配置
    • Resource Server配置
    • 客户端配置
  • 第三方登录
    • 微信登录、QQ登录、GitHub登录
    • 社交账号绑定

4.4 Web安全

  • 常见攻击防护
    • XSS攻击:输入过滤、输出编码
    • CSRF攻击:CSRF Token、SameSite Cookie
    • SQL注入:参数化查询、输入验证
    • 文件上传安全:文件类型检查、路径遍历防护
  • HTTPS配置
    • SSL证书配置
    • HTTP重定向到HTTPS
    • HSTS头部设置
  • CORS跨域
    • @CrossOrigin注解
    • CorsConfiguration配置
    • 预检请求处理

阶段五:分布式与微服务

5.1 微服务架构

  • 服务拆分
    • 领域驱动设计(DDD)
    • 单一职责原则
    • 服务边界划分
    • 数据一致性考虑
  • 服务通信
    • 同步通信:HTTP、gRPC
    • 异步通信:消息队列
    • 服务发现:Eureka、Consul、Nacos
    • 负载均衡:Ribbon、LoadBalancer

5.2 Spring Cloud

  • 服务注册发现
    • Eureka Server配置
    • Eureka Client配置
    • 服务健康检查
    • 服务下线处理
  • 配置中心
    • Spring Cloud Config Server
    • 配置文件管理:Git、SVN
    • 配置刷新:@RefreshScope
    • 配置加密:对称加密、非对称加密
  • 服务网关
    • Spring Cloud Gateway
    • 路由配置:Path、Host、Method
    • 过滤器:GlobalFilter、GatewayFilter
    • 限流:Redis限流、令牌桶算法
  • 服务调用
    • OpenFeign声明式调用
    • 超时配置、重试机制
    • 熔断器:Hystrix、Resilience4j
    • 负载均衡策略

5.3 分布式事务

  • 事务模式
    • 2PC两阶段提交
    • TCC补偿模式
    • Saga长事务模式
    • 本地消息表模式
  • Seata框架
    • AT模式自动补偿
    • TC、TM、RM角色
    • 全局事务注解:@GlobalTransactional
    • 分支事务注册

5.4 分布式锁

  • 实现方式
    • Redis分布式锁:SET NX EX
    • Zookeeper分布式锁
    • 数据库分布式锁
  • 锁优化
    • 可重入锁实现
    • 锁续期机制
    • 锁超时处理
    • 死锁检测

5.5 可观测性

  • 日志管理
    • 结构化日志:JSON格式
    • 日志级别:TRACE、DEBUG、INFO、WARN、ERROR
    • 日志聚合:ELK Stack
    • 分布式追踪:TraceId、SpanId
  • 指标监控
    • Micrometer指标收集
    • Prometheus指标存储
    • Grafana可视化
    • 自定义指标:Counter、Gauge、Timer
  • 链路追踪
    • OpenTelemetry标准
    • Zipkin、Jaeger
    • 采样策略:固定采样、动态采样
    • 跨服务追踪

阶段六:DevOps与部署

6.1 版本控制

  • Git高级用法
    • 分支策略:Git Flow、GitHub Flow
    • 合并策略:Merge、Rebase、Squash
    • 冲突解决
    • 子模块:Git Submodule
  • 代码质量
    • Code Review流程
    • 代码规范:Checkstyle、Spotless
    • 静态分析:SonarQube
    • 代码覆盖率:JaCoCo

6.2 构建工具

  • Maven
    • POM文件结构
    • 依赖管理:scope、exclusion
    • 生命周期:clean、compile、test、package、install、deploy
    • Profile环境配置
    • 插件使用:maven-compiler-plugin、maven-surefire-plugin
  • Gradle
    • build.gradle配置
    • 任务定义:task
    • 依赖管理:implementation、testImplementation
    • 多项目构建

6.3 容器化

  • Docker基础
    • 镜像、容器、仓库概念
    • Dockerfile编写:FROM、RUN、COPY、WORKDIR、EXPOSE
    • 多阶段构建:multi-stage build
    • 镜像优化:减小体积、安全扫描
  • Docker Compose
    • docker-compose.yml配置
    • 服务定义:services、networks、volumes
    • 环境变量配置
    • 服务依赖:depends_on
  • 容器编排
    • Kubernetes基础概念
    • Pod、Service、Deployment
    • ConfigMap、Secret
    • Ingress网络配置

6.4 CI/CD

  • 持续集成
    • GitHub Actions工作流
    • Jenkins Pipeline
    • 自动化测试:单元测试、集成测试
    • 代码质量检查
  • 持续部署
    • 环境管理:dev、test、staging、prod
    • 蓝绿部署
    • 金丝雀发布
    • 回滚策略

6.5 监控运维

  • 应用监控
    • JVM监控:内存、GC、线程
    • 业务指标监控
    • 告警配置:阈值、通知
  • 基础设施监控
    • 服务器监控:CPU、内存、磁盘、网络
    • 数据库监控:连接数、慢查询
    • 中间件监控:Redis、MQ

阶段七:前端协同开发

7.1 接口契约

  • OpenAPI规范
    • Swagger注解:@Api、@ApiOperation、@ApiModel
    • 接口文档生成
    • 前端代码生成:TypeScript类型、API客户端
  • 接口测试
    • Postman接口测试
    • 自动化接口测试
    • Mock服务:WireMock

7.2 跨域与Cookie

  • CORS配置
    • 跨域请求处理
    • 预检请求优化
    • 凭证传递:withCredentials
  • Cookie管理
    • SameSite属性:Strict、Lax、None
    • Secure、HttpOnly属性
    • 跨域Cookie共享

7.3 文件处理

  • 文件上传
    • MultipartFile处理
    • 文件类型验证
    • 文件大小限制
    • 分片上传、断点续传
  • 文件下载
    • 流式下载
    • 断点续传下载
    • 文件预览

7.4 实时通信

  • WebSocket
    • @ServerEndpoint注解
    • 消息广播
    • 连接管理
  • SSE服务器推送
    • SseEmitter
    • 事件流格式
    • 连接保活

7.5 GraphQL(可选)

  • GraphQL基础
    • Schema定义
    • Query、Mutation、Subscription
    • Resolver实现
  • Spring GraphQL
    • @QueryMapping、@MutationMapping
    • DataLoader批量加载
    • 错误处理

7.6 BFF模式(可选)

  • 面向前端的API
    • 数据聚合
    • 格式转换
    • 缓存策略
  • 微前端支持
    • 模块联邦
    • 独立部署
    • 版本管理

学习资源推荐

📖 书籍

  • Java基础
    • 《Java核心技术》- Cay S. Horstmann
    • 《Effective Java》- Joshua Bloch
    • 《Java并发编程实战》- Brian Goetz
  • Spring框架
    • 《Spring实战》- Craig Walls
    • 《Spring Boot实战》- Craig Walls
  • 架构设计
    • 《微服务架构设计模式》- Chris Richardson
    • 《领域驱动设计》- Eric Evans
  • 数据库
    • 《高性能MySQL》- Baron Schwartz
    • 《Redis设计与实现》- 黄健宏

🌐 在线资源

🛠️ 开发工具

  • IDE: IntelliJ IDEA Ultimate
  • 数据库工具: DBeaver、Navicat
  • API测试: Postman、Insomnia
  • 版本控制: Git、SourceTree
  • 容器: Docker Desktop
  • 监控: Prometheus、Grafana

实践项目建议

🎯 阶段一项目:任务管理系统

技术栈: Spring Boot + JPA + MySQL + Redis 功能模块:

  • 用户注册登录(JWT认证)
  • 任务CRUD操作
  • 任务分类管理
  • 任务状态流转
  • 任务搜索与分页
  • 缓存优化
  • API文档(Swagger)
  • 单元测试覆盖

🎯 阶段二项目:文件管理系统

技术栈: Spring Boot + MyBatis + MySQL + MinIO 功能模块:

  • 文件上传(分片上传)
  • 文件下载(断点续传)
  • 文件预览(图片、PDF)
  • 文件分类管理
  • 文件权限控制
  • 文件分享链接
  • 文件版本管理
  • 存储空间统计

🎯 阶段三项目:电商订单系统

技术栈: Spring Cloud + MySQL + Redis + Kafka 服务拆分:

  • 用户服务(注册、登录、个人信息)
  • 商品服务(商品管理、库存管理)
  • 订单服务(订单创建、状态管理)
  • 支付服务(支付接口、回调处理)
  • 通知服务(短信、邮件、站内信) 技术特性:
  • 分布式事务(Seata)
  • 消息队列异步处理
  • 缓存策略优化
  • 限流熔断保护
  • 链路追踪监控
  • Docker容器化部署

🎯 阶段四项目:实时聊天系统

技术栈: Spring Boot + WebSocket + Redis + MongoDB 功能模块:

  • 用户在线状态管理
  • 实时消息推送
  • 群聊功能
  • 消息历史存储
  • 文件传输
  • 消息加密
  • 消息撤回
  • 系统通知

📅 学习时间规划

8周学习计划

  • 第1-2周: Java基础 + Spring Boot入门
  • 第3-4周: Web开发 + 数据访问
  • 第5-6周: 缓存 + 消息队列 + 安全
  • 第7-8周: 微服务 + 部署运维

12周深入学习计划

  • 第1-3周: Java基础 + 并发编程
  • 第4-6周: Spring生态 + 数据库
  • 第7-9周: 分布式 + 微服务
  • 第10-12周: DevOps + 项目实战

✅ 学习检查清单

基础能力检查

  • 能够独立搭建Spring Boot项目
  • 掌握RESTful API设计规范
  • 熟练使用JPA进行数据操作
  • 理解事务管理机制
  • 能够配置和使用Redis缓存
  • 掌握JWT认证流程
  • 能够编写单元测试和集成测试

进阶能力检查

  • 能够设计微服务架构
  • 掌握分布式事务处理
  • 能够使用消息队列解耦
  • 理解容器化部署流程
  • 能够进行性能调优
  • 掌握监控和日志管理
  • 能够处理高并发场景

全栈能力检查

  • 能够与前端团队协作开发
  • 掌握前后端接口设计
  • 能够处理跨域和安全问题
  • 理解前后端分离架构
  • 能够进行全栈项目部署
  • 掌握CI/CD流程
  • 能够进行系统架构设计

💡 学习建议:

  1. 理论与实践结合: 每学一个知识点都要动手实践
  2. 项目驱动学习: 通过实际项目巩固理论知识
  3. 持续学习: 技术更新快,保持学习习惯
  4. 社区参与: 加入技术社区,参与开源项目
  5. 代码审查: 定期review自己的代码,提高代码质量

🎯 目标: 通过系统学习,从前端开发者成长为全栈开发者,具备独立设计和开发完整系统的能力。