想要从事 java 后端开发,核心就是掌握 java 基础语法搭配后端框架数据库网络编程以及项目工程化能力,最终能够独立开发稳定可上线的服务接口。之所以需要学习这么多模块,是因为后端的职责是处理业务逻辑存储数据对外提供接口响应前端或者其他系统请求,单纯会写 java 代码并不等于可以做后端开发,还要理解请求流转并发处理数据持久化部署运维整套链路。学习的时候建议按照由浅入深的顺序推进,先打牢 java 语言本身基础,再学习计算机通用基础知识,接着学习主流后端框架,然后掌握数据库缓存消息队列等中间件,之后学习项目构建版本控制接口规范,最后学习部署调优分布式相关知识,并且全程配套实战项目巩固知识点。学完这套体系之后,就可以满足初级 java 后端开发岗位的基础求职要求,后续再根据业务方向继续深耕高并发分布式性能优化相关进阶内容。
一 java 语言核心基础
这是整个 java 后端开发的根基,所有框架底层都是基于 java 语言实现,这部分不能只停留在会写简单代码,需要吃透底层原理。
清单
1 基础语法 变量数据类型运算符流程控制数组方法
2 面向对象 封装继承多态抽象类接口内部类
3 集合框架 ArrayList LinkedList HashMap HashSet TreeMap 源码理解扩容机制哈希冲突
4 异常体系 受检异常非受检异常自定义异常 try catch finally
5 IO 与 NIO 传统 IO 流文件读写 NIO 通道缓冲区选择器
6 多线程 线程创建方式线程生命周期锁 synchronized Lock 线程池 volatile CAS 并发集合
7 JVM 类加载机制内存结构垃圾回收算法垃圾收集器调优参数类加载器双亲委派
8 反射注解泛型动态代理 这部分是框架底层核心原理
二 计算机与网络基础知识
后端服务跑在操作系统之上,依靠网络完成通信,这部分是面试高频考点,也是排查线上问题必备知识。
清单
1 计算机操作系统 进程线程区别内存管理文件系统 IO 模型
2 计算机网络 TCP UDP 三次握手四次挥手 HTTP HTTPS HTTP1.1 HTTP2 HTTP3 请求报文响应报文状态码 Cookie Session
3 数据结构与算法 数组链表栈队列树二叉树红黑树哈希表排序查找算法时间复杂度空间复杂度
4 操作系统常用命令 Linux 常用命令 文件权限进程查看端口查询日志查看
三 Web 基础与主流框架
java 后端开发最核心的业务开发层,主流生态就是 Spring 全家桶,需要熟练掌握并且理解原理。
清单
1 Servlet 基础 理解请求处理原始原理 Filter Listener
2 Spring 核心 IoC 控制反转 AOP 面向切面编程 Bean 生命周期依赖注入循环依赖
3 SpringMVC 请求映射参数绑定拦截器异常处理返回值统一封装
4 SpringBoot 自动配置原理起步依赖内嵌容器配置文件 Profile 启动流程
5 SpringCloud 微服务组件 服务注册发现负载均衡熔断降级网关远程调用配置中心
四 数据库相关知识
后端业务绝大部分都需要持久化存储数据,数据库是核心组件,不只是会写 SQL,还要懂设计优化。
表格
| 学习模块 | 核心学习内容 |
|---|---|
| MySQL 基础 | 建表 SQL 增删改查索引事务隔离级别锁机制 |
| MySQL 进阶 | 执行计划 explain 慢查询优化分库分表主从复制读写分离 |
| MyBatis | 映射文件动态 SQL 一级二级缓存插件原理 |
| 其他数据库 | Redis 缓存 非关系型数据库基础概念 |
五 中间件与工程化工具
真实生产项目不会只有 java 和数据库,需要各类中间件承担缓存异步消息等能力,同时配套开发工具提升协作效率。
清单
1 Redis 数据类型持久化过期策略缓存穿透缓存击穿缓存雪崩分布式锁
2 消息队列 RabbitMQ RocketMQ Kafka 消息投递消费确认死信队列顺序消息
3 构建工具 Maven Gradle 依赖管理生命周期打包
4 版本控制 Git 分支管理提交合并冲突解决
5 接口工具 Postman Apifox 接口调试接口文档
6 日志体系 Logback Log4j2 日志级别链路追踪
六 部署运维与进阶能力
代码写完之后需要部署上线,还要处理线上故障性能问题,这部分区分初级和中级 java 后端开发能力。
清单
1 Linux 基础操作 服务启动防火墙环境变量
2 容器 Docker 镜像容器 Dockerfile 基础
3 接口规范 RESTful API 统一返回体参数校验鉴权 JWT
4 安全基础 SQL 注入 XSS CSRF 权限认证
5 性能优化 接口压测数据库优化 JVM 调优缓存优化
6 分布式基础 分布式事务分布式锁幂等性分布式一致性
七 实战项目与面试准备
理论学习必须搭配项目,单纯背知识点很难通过面试,项目需要模拟真实业务场景。
清单
1 个人项目 电商系统 后台管理系统 博客系统
2 项目文档 业务设计数据库表设计接口设计部署文档
3 面试刷题 java 基础 JVM 并发数据库网络算法项目深挖
4 代码规范 阿里 java 开发规范代码注释单元测试 JUnit
【常见问题】
问题 1 java 后端开发必须精通 JVM 吗
回答 1 初级 java 后端开发岗位可以先掌握 JVM 基础概念,但是想要进阶并且通过中高级面试,必须深入学习 JVM 内存模型垃圾回收和调优,JVM 是 java 后端开发核心考点,线上 OOM 频繁 FullGC 这类故障都需要依靠 JVM 知识排查。
问题 2 学习 java 后端开发要不要先学前端
回答 2 学习 java 后端开发不需要精通前端,只需要理解 HTTP 请求接口交互 JSON 数据格式基础概念,能够看懂简单前端请求即可,重心仍然放在 java 后端开发业务逻辑数据库接口服务本身。
问题 3 SpringBoot 和 SpringCloud 在 java 后端开发里是什么关系
回答 3 SpringBoot 是 java 后端开发快速开发单体服务的框架,SpringCloud 是基于 SpringBoot 的微服务生态,当单体项目业务复杂之后,使用 SpringCloud 把系统拆分成多个独立服务,是 java 后端开发微服务方向的进阶内容。
问题 4 学习 java 后端开发只学习框架可以吗
回答 4 不可以,只学习框架调用 API 只能做简单 CRUD,java 后端开发需要掌握底层原理,包括 java 基础并发 JVM 数据库原理,否则遇到复杂业务和线上故障没有排查能力,很难长期成长。
【免责申明】
本文内容为 java 后端开发学习路线参考,不同公司岗位要求存在差异,学习内容会随技术版本更新发生变化,不构成绝对就业保证,请结合自身情况调整学习计划。
