基礎重點(必須掌握)
Java語言
-
語言基礎 《Java核心技術》
- 基礎語法
- 面向物件
- 常用API
- 例外處理
- 集合
- IO
- 多執行緒
- 網路編程
- 泛型
- 反射
- 注解
-
JVM 《深入理解Java虛擬機》
-
類加載機制
- 雙親委托
-
位元組碼執行機制
-
JVM記憶體模型
- 堆區
- 虛擬機堆疊
- 方法區
-
GC垃圾回收
-
JVM性能監控與故障定位
-
JVM調優
-
-
多執行緒、鎖、并發 1:《Java并發編程的藝術》、2:《Java并發編程實戰》
-
并發編程基礎
-
執行緒池
-
鎖
- 樂觀鎖、悲觀鎖
- 互斥鎖、共享鎖
- 可重入鎖、偏向鎖
- 輕量級鎖、CAS與自旋鎖
-
并發容器
-
原子類
-
JUC并發工具類
-
-
網路編程
-
學習路徑
- Socket API + 多執行緒 + 網路模型/IO模型 + IO復用
- Netty
-
核心點
- 行程間通信方式:信號量、管道、共享記憶體、socket 等
- 多執行緒編程:互斥鎖、條件變數、讀寫鎖、執行緒池等
- 五大 IO 模型:同步、異步、阻塞、非阻塞、信號驅動
- 高性能 IO 兩種模式:Reactor 和 Proactor
- IO 復用機制:epoll、select、poll(破解 C10K 問題的利器)
-
-
Java原始碼
資料庫/SQL
-
《SQL必知必會》、《高性能MySQL》
-
SQL陳述句
-
手寫SQL
- 聯表
- 聚合
-
-
SQL陳述句優化
-
事務、隔離級別
-
索引
-
鎖
資料結構與演算法
-
《漫畫演算法》、《演算法》
-
資料結構
- 字串
- 陣列
- 鏈表
- 堆疊
- 佇列
- 二叉樹
- 堆
- 哈希
-
演算法
- 十大排序
- 查找、二分
- 貪心
- 分治
- 動態規劃
- 回溯
設計模式
- 《重學Java設計模式》
- 單例
- 工廠
- 代理
- 策略
- 模板方法
- 觀察者
- 配接器
- 責任鏈
- 建造者
- ,,,,
計算機網路
-
《計算機網路:自頂向下方法》
-
HTTP、TCP、IP、ICMP、UDP、DNS、ARP
-
IP地址、MAC地址、OSI七層模型(或者 TCP/IP 五層模型)
-
HTTPS安全相關的:數字簽名、數字證書、TLS
-
常見網路攻擊:局域網ARP泛洪、DDoS、TCP SYN Flood、XSS等
-
TCP協議(最重要)
-
TCP協議
- 三次握手、四次揮手
- 狀態轉換
- TCP狀態中TIME_WAIT
- 擁塞控制
- 快速重傳、慢啟動
-
問題
- TCP 如何實作可靠傳輸的(畫外音:如何基于 UDP 實作可靠傳輸)
- TCP 連接建立為什么不是兩次握手(畫外音:三次握手的充分必要性說明)
- TIME_WAIT 的存在解決了什么問題,等待時間為什么是 2 MSL
-
核心
- 可靠傳輸 + 高效傳輸(流量控制和視窗管理)
-
-
HTTP、HTTPS
- 從 URL 輸入到頁面展現到底發生什么
-
學習方法
-
學習抓住一條主線
- 一個資料包是如何發送出去的
-
帶著問題去思考為什么這么做
-
作業系統
-
《現代作業系統》
-
行程管理
-
并發、同步互斥、鎖
-
記憶體管理
-
檔案系統
-
重點
-
OS四大模塊的理論知識
- 行程與執行緒管理
- 記憶體管理
- IO與檔案系統
- 設備管理
-
了解Linux內核部分實作原理
- 記憶體管理
- 行程管理
- 虛擬檔案系統
-
與編程最密切
- 記憶體
- 行程
- IO
-
-
認知
- 作業系統由哪些構成
- 行程的狀態、切換、調度
- 行程間通信方式(共享記憶體、管道、訊息)
- 行程和執行緒的區別
- 執行緒的實作方式(一對一、多對一等)
- 互斥與同步(信號量、管程、鎖)
- 死鎖檢測與避免
- 并發經典的問題:讀者寫者、哲學家就餐問題
- 為什么需要虛擬記憶體,MMU 具體如何做地址轉換的
- 記憶體為什么分段、分頁
- 頁面置換演算法
- 檔案系統是如何組織的
- 虛擬檔案系統(VFS)是如何抽象的
- ,,,,
開發工具
集成開發環境
- Eclipse
- IDEA
- VSCode
Linux系統
- Linux常用命令
- 基本Shell腳本
代碼管理工具
-
Git
- Git命令和使用
-
SVN
專案管理/構建工具
- Maven
- Gradle
應用框架
后端
-
JSP、Servlet
-
Spring家族
-
Spring
- IOC
- AOP
-
Spring MVC
-
MyBatis
-
SSM
- 打war包
- Tomcat運行
-
Spring Boot
-
打jar包
-
內嵌Tomcat
- 微服務架構
-
-
知識點
-
自動配置、開箱即用
-
整合Web
-
整合資料庫(事務問題)
-
整合權限
- Shiro
- SpringSecurity
-
各種中間件
-
快取
-
MQ
-
RPC框架
- Dubbo
-
NIO框架
- Netty
-
-
-
-
Spring Cloud
-
Netflix
-
Eureka
- 服務治理組件,包括服務端的注冊中心和客戶端的服務發現機制,
-
Ribbon
- 負載均衡的服務呼叫組件,具有多種負載均衡呼叫策略,
-
Hystrix
- 服務容錯組件,實作了斷路器模式,為依賴服務的出錯和延遲提供了容錯能力,
-
Feign
- 基于Ribbon和Hystrix的宣告式服務呼叫組件,
-
Zuul
- API 網關服務,過濾、安全、監控、限流、路由,
-
-
Alibaba
-
Nacos
- 阿里巴巴開源產品,一個更易于構建云原生應用的動態服務發現、配置管理和服務管理平臺,
-
Sentinel
- 面向分布式服務架構的輕量級流量控制產品,把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性,
-
RocketMQ
- 一款開源的分布式訊息系統,基于高可用分布式集群技術,提供低延時的、高可靠的訊息發布與訂閱服務,
-
Dubbo
- Apache Dubbo 是一款高性能 Java RPC 框架,用于實作服務通信,
-
Seata
- 阿里巴巴開源產品,一個易于使用的高性能微服務分布式事務解決方案,
-
-
Config
- 分布式配置中心,配置管理工具,支持使用 Git 存盤配置內容,支持應用配置的外部化存盤,支持客戶端配置資訊重繪、加解密配置內容等,
-
Bus
- 事件、訊息總線,用于在集群(例如,配置變化事件)中傳播狀態變化,可與 Spring Cloud Config 聯合實作熱部署,
-
Consul
- 服務注冊和配置管理中心,
-
Security
- 安全工具包,對Zuul代理中的負載均衡OAuth2客戶端及登錄認證進行支持,
-
Sleuth
- SpringCloud應用程式的分布式請求鏈路跟蹤,支持使用Zipkin、HTrace和基于日志(例如ELK)的跟蹤,
-
Stream
- 輕量級事件驅動微服務框架,可以使用簡單的宣告式模型來發送及接收訊息,主要實作為Apache Kafka及RabbitMQ,
-
Task
- 用于快速構建短暫、有限資料處理任務的微服務框架,用于向應用中添加功能性和非功能性的特性,
-
Zookeeper
- 服務注冊中心,
-
Gateway(可替代 Zuul)
- Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發的網關,Spring Cloud Gateway 旨在為微服務架構提供一種簡單而有效的統一的 API 路由管理方式,Spring Cloud Gateway 作為 Spring Cloud 生態系中的網關,目標是替代 Netflix Zuul,其不僅提供統一的路由方式,并且基于 Filter 鏈的方式提供了網關基本的功能,例如:安全,監控/埋點,和限流等,
-
OpenFeign(可替代 Feign)
- OpenFeign 是 Spring Cloud 在 Feign 的基礎上支持了 Spring MVC 的注解,如 @RequesMapping等等,OpenFeign 的 @FeignClient 可以決議 SpringMVC 的 @RequestMapping 注解下的介面,并通過動態代理的方式產生實作類,實作類中做負載均衡并呼叫其他服務,
-
-
專案經驗
- 總結
-
-
中間件
-
快取
-
Redis
- 5大資料型別
- 事務
- 訊息通知
- 管道
- 持久化
- 集群
-
-
訊息
- RabbitMQ
- RocketMQ
- Kafka
-
搜索
- ElasticSearch
-
前端
-
基礎套餐
-
三大件
- HTML
- CSS
- JavaScript
-
基礎庫
- jQuery
- Ajax
-
-
模板框架
- JSP
- Thymeleaf
- FreeMaker
-
組件化框架
- Node
- VUE
- React
- Angular
應用運維
Web服務器
- Nginx
應用服務器
- Tomcat
容器技術
- Docker
持續集成、持續發布
- Jenkins
代碼質量檢測
- Sonar
日志收集、分析
- ELK
CDN加速
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/280608.html
標籤:其他
