Java后端学习路线梳理
前言——2021年10月起,即从写本文这段时间开始,我将在英国读一年研究生,修的是跟我本科一致的软件工程专业。一年的时间说长不长,说短不短,利用这段时间好好把以前浑浑噩噩中遗忘的知识补回来,再进行知识扩充,自我提升还是足够的。这正是我要开始写文章的缘由。在这里,留下一些学习和思考的痕迹,希望能对日后的自己有所帮助!
我可能会写一些学习笔记和总结,发一些实验过程记录,也会写写题解和刷题过程中引发的思考等。想要系统地补充和扩充知识,则需要系统地梳理学习路线。我打算以后从事Java后端开发,所以参考了知乎,B站上一些大佬的经验分享后,做出了下面一些关于Java后端学习路线的总结。
简单来说
学好Java,并想找到一份不错的工作大体上需要掌握以下五个部分:
- 技术栈,通俗来说就是Java八股文
- 计算机基础——操作系统,计算机网络,数据库等
- 数据结构与算法
- 项目
- 实习
详细来说
①编程基础——
一、Java语言
1.语言基础:
- 基础语法
- 面向对象
- 接口
- 容器
- 异常
- 泛型
- 反射
- 注解
- I/O
2.JVM
- 类加载机制
- 字节码执行机制
- JVM内存模型
- GC垃圾回收
- JVM性能监控与故障定位
- JVM调优
3.并发、多线程
- 并发编程基础
- 线程池
- 锁
- 并发容器
- 原子类
- JUC并发工具类
二、数据结构和算法
1.数据结构
- 字符串
- 数组
- 链表
- 二叉树
- 堆、栈、队列
- 哈希
2.算法
- 查找
- 排序
- 贪心
- 分治
- 动态规划
- 回溯
三、计算机网络
- ARP协议
- IP/ICMP协议
- TCP/UDP协议
- DNS/HTTP/HTTPS协议
- Session/Cookie
四、数据库/SQL
- SQL语句书写
- SQL语句优化
- 事务以及隔离级别
- 索引
- 锁
五、操作系统
- 进程/线程
- 并发/锁
- 内存管理和调度
- I/O原理
六、设计模式
- 单例
- 工厂
- 代理
- 策略
- 模板方法
- 观察者
- 适配器
- 责任链
- 建造者
②研发工具——
一、集成开发工具
- Eclipse
- Intellij IDEA
- VS Code
二、Linux系统
- Linux常用命令
- 基本Shell脚本
三、代码管理工具
- Git
- SVN
四、项目管理/构建工具
- Maven
- Gradle
③应用框架——
一、Spring家族
- Spring
– IoC
– AOP - Spring MVC
- Spring Boot
– 自动配置、开箱即用
– 整合Web
– 整合数据库(事务问题)
– 整合权限(Shiro、Spring Security)
– 整合各种中间件:缓存、MQ、RPC框架、NIO框架等
二、服务器软件
- Web服务器
– Nginx - 应用服务器
– Tomcat
– Jetty
– Undertow
三、中间件
- 缓存
– Redis——5大数据类型、事务、消息通知、管道、持久化、集群
– memcache - 消息队列
– RocketMQ
– RabbitMQ
– Kafka - RPC框架
– Dubbo
– gRPC
– Thrift
– Spring Cloud
– Netty
四、数据库
- ORM层框架
– MyBatis
– Hibernate
– JPA - 连接池
– Druid
– HikariCP
– C3P0 - 分库分表
– MyCat
– Sharding-JDBC
– Sharding-Sphere
五、搜索引擎
- ElasticSearch
- Soir
六、分布式/微服务
- 服务发现/注册
- 网关
- 服务调用(负载均衡)
- 熔断/降级
- 配置中心
- 认证和鉴权
- 分布式事务
- 任务调度
- 链路追踪与监控
- 日志分析与监控
七、虚拟化/容器化
- 容器技术
– Docker - 容器编排技术
– Kubernetes
– Swarm
④部分前端——
一、基础套餐
- 三大件
– HTML
– JavaScript
– CSS - 基础库
– JQuery
– Ajax
二、模板框架
- JSP/JSTL
- Thymeleaf
- FreeMarker
三、组件化框架
-
Node
-
Vue
-
React
-
Angular
结语:综上所述,可以看出,路还很长,继续不断努力吧!