前言——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
結語:綜上所述,可以看出,路還很長,繼續不斷努力吧!