前言——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
结语:综上所述,可以看出,路还很长,继续不断努力吧!