1、java語言
(1)編程基礎
基礎語法、面向對象、接口、容器、異常、泛型、反射、注解、IO
(2)jvm
類加載機制、字節碼執行機制、jvm內存模型、GC垃圾回收、JVM性能監控與故障定位、jvm調優
(3)多線程/並發
並發編程的基礎(指令重排序、原子性、並發性等)、線程池、鎖、並發容器、原子類、JUC並發工具
(4)其他
java8、集合
如:Java8的Lambda表達式、函數式接口,集合非常重要
2、數據結構和算法
(1)數據結構
字符串、數組、鏈表、堆、棧、隊列、二叉樹、哈希、圖
(2)算法
排序、查找、貪心、分治、動態規划、回溯
3、計算機網絡
ARP協議、IP協議、ICMP協議、TCP協議、UDP協議、DNS協議、HTTP協議、HTTPS協議、session、cookie
4、數據庫
(1)基礎
sql語句的書寫、sql語句的優化、事務、隔離級別、索引、鎖、增刪改查、三范式、表設計、主外鍵、關聯查詢(left join、right join、inner join)、數據庫函數使用、mysql的四大特性、四種隔離級別..
(2)數據庫拔高
(1)全局鎖,表鎖,行鎖,死鎖,樂觀鎖,悲觀鎖..
(2)索引,索引底層實現原理,存儲方式,如何創建索引,優化索引..
5、操作系統
進程、線程、並發、鎖、內存管理和調度、IO原理
6、設計模式
單例、工廠、代理、策略、模板方法、關聯者、適配器、責任鏈、建造者
7、研發工具
(1)開發工具
eclipse、IDEA、vscode
(2)Linux系統
- 常用命令、shell腳本
- 簡單命令(安裝jdk、數據庫、web服務器安裝、安裝redis、Nginx,在上面部署和啟動項目,觀察項目的動態日志等)
(3)代碼管理工具
SVN、Git(至少會一個)
(4)項目管理/構建工具
Maven、Gradle(Maven必會)
8、框架(后端)
(1)spring家族框架
spring(IoC、AOP)、springmvc、spring boot(自動配置、開箱即用、整合web、整合數據庫(事務問題)、整合權限(Shiro、Spring Security)、整合各種中間件(Redis、MQ、RPC框架、NIO框架))
(2)服務器軟件
web服務器(Nginx)、應用服務器(Tomcat、Jetty、Undertow)
(3)中間件
緩存(Redis(5大基礎數據類型、事務、管道、持久化、集群)、消息隊列(RocketMQ、RabbitMQ、Kafka)、RPC框架(Dubbo、gRPC、Thrift、Spring Cloud、Netty))
(4)數據庫框架
mybatis、hibernate、jpa、連接池(Druid、HikraiCP、C3P0)、分庫分表(MyCAT、Sharding-JDBC、Sharding-Sphere)
(5)搜索引擎
ElasticSearch、Solr
(6)分布式/微服務
- 服務發現注冊(Eureka、Consul、Zookeeper、Nacos)
- 網關(Zuul、Gateway)
- 服務調用(Ribbon、Feign)
- 熔斷/降級(Hystrix)
- 配置中心(Config、Apollo、Nacos)
- 認證和鑒權(Spring Security、OAuth2、SSO單點登錄)
- 分布式事務(JTA接口(Atomikos組件、2PC、3PC)
- XXA模式、TCP模式(tcc-transcation\ByteTCC、EasyTrabscation、Seata)
- SAGA模式(ServiceComb、Seata)
- LCN模式(tx-lcn)
- 任務調度(Quartz、Elastic-Job)
- 鏈路追蹤與監控(Zipkin、Sleuth、Skywalking)
- 日志分析與監控(ElasticSearch、Logstash、Kibana))
(7)虛擬化/容器化
- 容器技術(Docker)
- 容器編排技術(Kubernetes、Swarm)
9、前端
(1)基礎
三大件(html、JavaScript、css)、jQuery、Ajax
(2)模板框架
jsp/jstl、Thymeleaf、FreeMarker、beetl
(3)組件化框架
Vue、React、Angular、Node
(4)其他
框架(BootStrap)、日期組件(laydate)、圖表統計(echarts.js)、數據結點、(ZTree.js)、vue(使用比較廣泛的一個js組件)
10、運維知識
web服務器(Nginx)、應用服務器(tomcat、Jetty、Undertow)、CDN加速、持續集成/持續部署(Jenkins)、代碼質量檢查(sonar)、日志收集和分析(ELK)
11、緩存和操作糸統
- redis基本數據類型和各種常用命令,數據持久化,持久化恢復
- linux常用命令,重點學linux如何查看日志
- 可以保存的數據類型、主動配置、高並發配置、高可用配置、樂觀鎖、悲觀鎖
- redis主從復制,哨兵機制,redis集群搭建
其它學習路線推薦:
MonkTang:Java學習流程https://www.cnblogs.com/MonkTang/p/9204993.html