前言
很多朋友在學習Java時,會發現雖然資源很多但是無法形成一個知識體系,讓自己由點到面、由淺入深的對Java有個比較全面認識,
寫這篇文章目的,就是列出了一個Java的路線圖,帶剛開始學習Java或需要復習Java的朋友進行系統的學習,
整個體系分為5個階段:Java基礎、Java進階、JavaWeb、Java框架、分布式,通過這5個階段的學習,大家能掌握到目前互聯網企業所需要的主流技術點,
每個課程后面都有我的博文地址,由于剛開始整理,有的文章還沒有寫,后面寫好了會不定時更新上去,爭取完成一個完整的體系,我也會不斷學習,對內容不斷進行擴展和深化,也歡迎大家給出寶貴的建議,
學習方法方面給初學朋友的建議就是:
1、堅持,Java的知識點多,而且是一個體系,必須一步一步堅持下去
2、思考,每個知識點除了知道怎么用,還需要思考不用行不行、有沒有其他辦法、實作的原理等
3、練習,學習編程就是多敲代碼,每篇博文都有案例、練習和作業,多動手學習起來才有效果
第一階段 Java基礎 | |||
| 序號 | 課程名稱 | 內容簡介 | 博客地址 |
| 1 | Java的安裝和配置 | Java語言介紹 | https://blog.csdn.net/u013343114/article/details/112212873 |
| JDK安裝 | |||
| 環境變數配置 | |||
| HelloWorld | |||
| Java編譯執行程序 | |||
| Eclipse的使用 | |||
| 2 | 變數、識別符號和型別轉換 | Java識別符號的規則和規范 | https://blog.csdn.net/u013343114/article/details/112217062 |
| Java的關鍵字 | |||
| 變數的定義和使用 | |||
| 變數的資料型別 | |||
| 自動型別轉換 | |||
| 強制型別轉換 | |||
| Scanner輸入 | |||
| 3 | Java的運算子 | 賦值運算子 | https://blog.csdn.net/u013343114/article/details/112238345 |
| 算術運算子 | |||
| 關系運算子 | |||
| 邏輯運算子 | |||
| 三元運算子 | |||
| 4 | 分支陳述句 | 基本的 if | https://blog.csdn.net/u013343114/article/details/112272131 |
| if-else | |||
| 多重if | |||
| 嵌套if | |||
| switch | |||
| 5 | 回圈結構 | for | https://blog.csdn.net/u013343114/article/details/112275496 |
| while | |||
| do-while | |||
| break和continue | |||
| 嵌套回圈 | |||
| 6 | 陣列基礎 | 陣列簡介 | https://blog.csdn.net/u013343114/article/details/112308634 |
| 陣列的定義 | |||
| 陣列的初始化 | |||
| foreach回圈 | |||
| Arrays工具 | |||
| 二維陣列的使用 | |||
| 7 | 陣列演算法 | 求最大值 | https://blog.csdn.net/u013343114/article/details/112314935 |
| 順序查找 | |||
| 冒泡排序 | |||
| 選擇排序 | |||
| 二分查找 | |||
| 8 | 方法 | 方法的概述 | https://blog.csdn.net/u013343114/article/details/112461550 |
| 無參的方法 | |||
| 有參的方法 | |||
| 基本型別和參考型別引數的區別 | |||
| 方法的多載 | |||
| 帶回傳值的方法 | |||
| 可變引數 | |||
| 9 | 面向物件~類和物件 | 面向物件的概念 | https://blog.csdn.net/u013343114/article/details/112345793 |
| 類和物件的概念 | |||
| 面向物件編程 | |||
| 屬性和方法 | |||
| 構造方法 | |||
| this關鍵字 | |||
| 面向物件的記憶體分配 | |||
| 10 | 面向物件~封裝 | 封裝的概念 | https://blog.csdn.net/u013343114/article/details/112358966 |
| 訪問修飾符 | |||
| getter和setter方法 | |||
| 包 | |||
| 物件之間的通信 | |||
| 11 | 面向物件~繼承 | 繼承的相關概念 | https://blog.csdn.net/u013343114/article/details/112463703 |
| super關鍵字 | |||
| 繼承中的構造方法 | |||
| final關鍵字 | |||
| 抽象類 | |||
| 12 | 面向物件~多型 | 什么是多型 | https://blog.csdn.net/u013343114/article/details/112506137 |
| 多型的作用 | |||
| 如何實作多型 | |||
| Object類 | |||
| equals和==的區別 | |||
| 向上向下轉型 | |||
| instanceof運算子 | |||
| 13 | 面向物件~static關鍵字和單例模式 | 靜態屬性 | https://blog.csdn.net/u013343114/article/details/112509898 |
| 靜態屬性記憶體分析 | |||
| 靜態方法 | |||
| 靜態常量 | |||
| 靜態匯入 | |||
| 單例模式 | |||
| 14 | 面向物件~介面和內部類 | 介面是什么 | https://blog.csdn.net/u013343114/article/details/112523663 |
| 介面的作用 | |||
| 介面的使用 | |||
| 介面和抽象類的區別 | |||
| 靜態內部類 | |||
| 成員內部類 | |||
| 區域內部類 | |||
| 匿名內部類 | |||
| 15 | Java常用類 | String類 | |
| StringBuffer類和StringBuilder類 | |||
| 包裝類 | |||
| 日期相關API | |||
| Math類 | |||
| Random類 | |||
|
Runtime類
| |||
|
System類
| |||
| 16 | 集合 | 集合框架體系介紹 | |
|
集合和陣列的區別
| |||
|
Collection介面
| |||
|
List介面
| |||
|
ArrayList集合
| |||
|
LinkedList集合
| |||
|
Vector集合
| |||
|
泛型集合
| |||
|
ArrayList和LinkedList的作業原理
| |||
| 17 | 集合 | Map介面 | |
|
HashMap集合
| |||
| HashMap原始碼分析 | |||
|
TreeMap集合
| |||
|
LinkedHashMap集合
| |||
|
Hashtable集合
| |||
|
Set介面
| |||
|
HashSet集合
| |||
| HashSet原始碼分析 | |||
|
TreeSet集合
| |||
|
LinkedHashSet集合
| |||
| 18 | 集合 | Collections類 | |
|
Comparable介面
| |||
|
Comparator介面
| |||
|
Lambda運算式
| |||
| 19 | 例外 | Java的例外體系 | |
| 例外的概念及分類 | |||
| try-catch的基本用法 | |||
| 多重catch的用法 | |||
| finally的基本用法 | |||
| finally和return執行順序 | |||
| throw、throws的基本用法 | |||
| 自定義例外 | |||
| 20 | IO | 檔案操作的概念 | |
|
使用遞回讀取檔案夾
| |||
|
檔案的篩選
| |||
|
IO流的分類及體系結構
| |||
|
位元組輸入流
| |||
|
位元組輸出流
| |||
|
try with resource
| |||
| 21 | IO | 位元組緩沖流 | |
|
列印流
| |||
|
字符流
| |||
|
字符緩沖流
| |||
|
裝飾設計模式
| |||
| 22 | IO | 資料流 | |
|
物件流
| |||
|
序列化
| |||
|
深復制和淺復制
| |||
|
NIO
| |||
| 23 | 網路編程 | 網路編程相關概念 | |
| HTTP協議 | |||
| HTTP網路編程 | |||
| 24 | 網路編程 | TCP/IP協議 | |
| UDP協議 | |||
| Socket編程 | |||
| UDP編程 | |||
| 25 | 專案實戰:網上云盤 | C/S架構,在控制臺實作檔案串列、搜索、上傳、下載等功能 | |
第二階段 Java進階 | |||
| 序號 | 課程名稱 | 內容簡介 | 博客地址 |
| 1 | 執行緒基礎 | 行程、執行緒的概念介紹 | https://blog.csdn.net/u013343114/article/details/111224268 |
|
執行緒的實作方式
| |||
|
Thread類的常用方法介紹
| |||
|
執行緒的啟動和停止
| |||
|
執行緒的生命周期
| |||
|
執行緒的調度
| |||
| 2 | 執行緒池 | 執行緒池的作用 | https://blog.csdn.net/u013343114/article/details/111224390 |
|
執行緒池相關API
| |||
|
Executors常用方法
| |||
|
執行緒池的配置
| |||
|
執行緒池的原理
| |||
| 3 | 執行緒同步 | 執行緒同步問題介紹 | https://blog.csdn.net/u013343114/article/details/111224459 |
|
同步方法
| |||
|
同步代碼塊
| |||
|
同步鎖
| |||
| 死鎖問題 | |||
| AtomicInteger原子類 | https://blog.csdn.net/u013343114/article/details/111224517 | ||
| volatile關鍵字 | |||
| 4 | 執行緒通信 |
生產者消費者模式
| https://blog.csdn.net/u013343114/article/details/111224625 |
| 阻塞佇列 | |||
| 5 | XML決議和正則運算式 | XML介紹 | |
| XML決議 | |||
| 正則運算式 | |||
| 6 | 反射 | 反射機制 | |
| 類加載機制 | |||
| 反射的API | |||
| 獲得Class的幾種方式 | |||
| 反射呼叫構造器、方法和屬性 | |||
| 反射實作JSON決議 | |||
| 7 | MySQL基礎 | MySQL的安裝 | https://blog.csdn.net/u013343114/article/details/110475540 |
| 建庫建表操作 | https://blog.csdn.net/u013343114/article/details/110483099 | ||
| DML | |||
| 8 | MySQL基本查詢 | select陳述句 | https://blog.csdn.net/u013343114/article/details/110486364 |
| where子句 | |||
| in\between\like子句 | |||
| order by 排序 | |||
| limit分頁 | |||
| 9 | MySQL高級查詢 | 外鍵約束 | https://blog.csdn.net/u013343114/article/details/110489588 |
| 內連接 | |||
| 外連接 | |||
| 子查詢 | |||
| 行轉列 | https://blog.csdn.net/u013343114/article/details/110490204 | ||
| 10 | MySQL索引、視圖、存盤程序 | 索引的作用 | https://blog.csdn.net/u013343114/article/details/110640134 |
| 索引的原理和資料結構 | |||
| 視圖 | https://blog.csdn.net/u013343114/article/details/110648385 | ||
| 存盤程序 | https://blog.csdn.net/u013343114/article/details/110649447 | ||
| 11 | JDBC基礎 | JDBC簡介 | |
|
JDBC API介紹
| |||
|
實作基本的CRUD
| |||
| 12 | JDBC高級 |
批處理
| |
| 資料庫連接池 | |||
|
反射撰寫資料庫工具類
| |||
| 13 | 專案實戰:學生管理系統 | MySQL+JDBC實作用戶登錄和學生的CRUD | |
第三階段 JavaWeb | |||
| 序號 | 課程名稱 | 內容簡介 | 博客地址 |
| 1 | html | HTML簡介 | |
|
HTML基本結構
| |||
|
HTML基本標簽
| |||
|
表單
| |||
| 表格 | |||
| 內嵌框架 | |||
| 2 | css | CSS簡介 | |
|
CSS的語法
| |||
|
CSS的選擇器
| |||
|
CSS的分類
| |||
|
CSS基本屬性
| |||
|
盒子模型
| |||
|
DIV+CSS布局
| |||
| 3 | javascript | JS基本語法 | |
|
DOM編程
| |||
|
函式和事件處理
| |||
|
表單驗證
| |||
|
正則運算式
| |||
| 常用類:Date、Math、String、Array | |||
|
JS中的物件
| |||
|
BOM編程
| |||
| 6 | Tomcat | BS和CS結構 | |
|
主流服務器介紹
| |||
|
Tomcat的安裝和配置
| |||
| HTTP協議 | |||
|
GET和POST的區別
| |||
| 手寫簡單的服務器 | |||
| 7 | Servlet | Servlet介紹 | |
|
Servlet的定義
| |||
|
Servlet的配置
| |||
|
Servlet的生命周期
| |||
|
Servlet的方法引數
| |||
|
中文亂碼的處理
| |||
|
Servlet執行緒安全
| |||
| 8 | JSP | JSP的介紹 | |
|
JSP的原理
| |||
|
JSP的指令
| |||
|
JSP的內置物件
| |||
|
頁面跳轉的方法
| |||
| EL運算式 | |||
|
JSTL標簽
| |||
| 9 | 上傳下載 | 檔案上傳 | |
|
檔案下載
| |||
| 10 | 會話跟蹤 | Cookie機制 | |
| Cookie的使用 | |||
| Session原理 | |||
| Session的使用 | |||
| 11 | 過濾器/監聽器 | 過濾器原理 | |
| 過濾器生命周期 | |||
| 過濾器鏈 | |||
| 過濾器實作登錄驗證 | |||
| 監聽器原理 | |||
| 監聽器的使用 | |||
| 監聽在線用戶 | |||
| 12 | JQuery | Jquery選擇器 | |
| Jquery常用方法 | |||
|
事件處理
| |||
|
影片
| |||
| 13 | Ajax | Ajax原理 | |
|
XMLHttpRequest
| |||
| JQuery的Ajax | |||
| Ajax實作用戶名重復驗證 | |||
| 14 | 專案實戰:酒店管理系統 | B/S架構實作酒店管理后臺與前端 | |
第四階段 JavaEE框架 | |||
| 序號 | 課程名稱 | 內容簡介 | 博客地址 |
| 1 | Maven | Maven介紹 | https://blog.csdn.net/u013343114/article/details/111193714 |
| 什么是Maven | |||
| Maven的安裝 | |||
| Maven的倉庫 | |||
| Maven倉庫的分類 | |||
| Maven的配置 | |||
| 在IDEA配置Maven | |||
| Maven專案的結構 | |||
| POM檔案介紹 | |||
| 依賴管理 | |||
| 專案生命周期管理 | |||
| 繼承和聚合 | |||
| 依賴沖突的調解 | |||
| 2 | Git | 版本控制 | https://blog.csdn.net/u013343114/article/details/110927058 |
| GIT的特點 | |||
| GIT的作業流程 | |||
| GIT使用方法 | |||
| IDEA中配置GIT | |||
| 3 | Spring IOC | Spring框架簡介 | https://blog.csdn.net/u013343114/article/details/111194463 |
|
Spring框架的組件
| |||
|
IOC概念
| |||
|
Spring IOC的XML的實作
| |||
|
Spring IOC的注解的實作
| |||
|
使用反射+注解實作IOC
| |||
| IOC原始碼決議 | https://blog.csdn.net/u013343114/article/details/111195142 | ||
| 4 | Spring AOP | AOP的相關概念 | https://blog.csdn.net/u013343114/article/details/111194829 |
|
AOP在Spring中的實作
| |||
|
注解配置
| |||
|
AOP在專案中的應用
| |||
|
AOP實作日志收集
| |||
| SpringAOP的實作原理 | https://blog.csdn.net/u013343114/article/details/111194967 | ||
|
靜態代理
| |||
| JDK動態代理 | |||
| Cglib動態代理 | |||
| AOP原始碼決議 | https://blog.csdn.net/u013343114/article/details/111221758 | ||
| 5 | SpringMVC基礎 | MVC設計模式 | https://blog.csdn.net/u013343114/article/details/111466886 |
| MVC的執行流程 | |||
| Struts2.0和SpringMVC的區別 | |||
| SpringMVC執行流程 | |||
| 入門案例 | |||
| 處理引數 | |||
| 處理回傳資料 | |||
| SpringMVC的常用注解 | |||
| 頁面跳轉 | |||
| 簡單的登錄案例 | |||
| 6 | SpringMVC高級 |
攔截器概念
| https://blog.csdn.net/u013343114/article/details/111467099 |
| 攔截器的使用 | |||
| 檔案上傳 | |||
| 檔案下載 | |||
| 前后端分離 | |||
| RestFul | |||
| RESTFul風格的API | |||
| 7 | MyBatis基礎 | MyBatis簡介 | https://blog.csdn.net/u013343114/article/details/111467193 |
| 什么是ORM | |||
| MyBatis和Hibernate的區別 | |||
| MyBatis的基本使用 | |||
| MyBatis的查詢 | |||
| 8 | MyBatis高級 | 動態SQL | https://blog.csdn.net/u013343114/article/details/111467277 |
| if/where/set/trim/foreach標簽 | |||
| 關聯查詢 | |||
| collection實作一對多關聯 | |||
| association實作一對一關聯 | |||
| 延遲加載 | |||
| MyBatis兩級快取機制 | |||
| MyBatis原始碼決議 | https://blog.csdn.net/u013343114/article/details/111245302 | ||
| 手敲MyBatis | https://blog.csdn.net/u013343114/article/details/111245615 | ||
| 9 | SpringBoot | SpringBoot簡介 | |
|
SpringBoot創建專案
| |||
|
SpringBoot的配置
| |||
|
SpringBoot整合MVC
| |||
|
SpringBoot整合MyBatis
| |||
| SpringBoot配置攔截器 | |||
| SpringBoot的配置原理 | |||
| 10 | Shiro | RBAC權限管理 | https://blog.csdn.net/u013343114/article/details/111592137 |
| Shiro介紹 | |||
| Shiro入門 | |||
| 自定義Realm | |||
| 密碼加密加鹽 | |||
| SpringBoot+MyBatis+Shiro整合 | |||
| RememberMe | |||
| 11 | Linux | Linux的安裝 | https://blog.csdn.net/u013343114/article/details/110430568 |
| Linux的常用命令 | https://blog.csdn.net/u013343114/article/details/110431842 | ||
| Linux的網路配置 | https://blog.csdn.net/u013343114/article/details/110432336 | ||
| JDK和Tomcat的安裝 | https://blog.csdn.net/u013343114/article/details/110433299 | ||
| MySQL的安裝 | https://blog.csdn.net/u013343114/article/details/110434127 | ||
| 12 | Nginx | Nginx能做什么 | https://blog.csdn.net/u013343114/article/details/112170264 |
| 正向/反向代理 | |||
| Nginx的安裝 | |||
| Nginx+Vsftp搭建檔案服務器 | |||
| 負載均衡概念 | |||
| Nginx負載均衡 | |||
| 13 | Docker | 為什么要使用Docker | https://blog.csdn.net/u013343114/article/details/112170627
https://blog.csdn.net/u013343114/article/details/112179420 |
| 容器化 | |||
| 虛擬機和容器 | |||
| Docker的架構 | |||
| 安裝Docker | |||
| Docker的基本使用 | |||
| Docker安裝MySQL | |||
| 在Docker上部署Springboot專案 | |||
| 14 | Jenkins | 持續集成/持續交付/持續部署 | https://blog.csdn.net/u013343114/article/details/111841377 |
| Jenkins安裝 | |||
| Jenkins的配置 | https://blog.csdn.net/u013343114/article/details/111868141 | ||
| Webhook配置 | |||
| Jenkins自動部署SpringBoot專案 | |||
| 15 | 專案實戰:OA專案 | 前后端分離架構SpringBoot+Vue+ElementUI | https://edu.csdn.net/course/detail/31433 |
第五階段 分布式 | |||
| 序號 | 課程名稱 | 內容簡介 | 博客地址 |
| 1 | SpringCloud Eureka | 為什么使用微服務 | https://edu.csdn.net/course/detail/31451 |
|
為什么使用注冊中心
| |||
|
Eureka注冊中心使用
| |||
|
Eureka的自我保護機制
| |||
|
Eureka的安全配置
| |||
|
Eureka的集群配置
| |||
| 2 | SpringCloud Ribbon | 負載均衡 | |
|
服務器端負載均衡和客戶端負載均衡
| |||
|
Ribbon負載均衡策略
| |||
|
RestTemplate的用法
| |||
| 3 | SpringCloud Hystrix | 服務可用性 | |
|
服務雪崩問題
| |||
|
Hystrix的使用
| |||
|
Hystrix的隔離模式
| |||
| 4 | SpringCloud Feign | Feign是什么 | |
|
Feign怎么用
| |||
|
Feign處理各種引數
| |||
|
Feign原理
| |||
|
Feign優化
| |||
| 5 | SpringCloud Zuul | 服務網關的作用 | |
|
Zuul介紹
| |||
|
Zuul的基本使用
| |||
|
Zuul的路由規則
| |||
|
Zuul的過濾器
| |||
|
Zuul限流
| |||
|
Zuul超時優化
| |||
| 6 | SpringCloud Config | Config的介紹 | |
|
Config的基本使用
| |||
|
動態更新配置
| |||
| 7 | Elasticsearch | Elasticsearch介紹 | |
| Elasticsearch的安裝 | |||
| Kibana安裝 | |||
| 安裝分詞器 | |||
| SprngBoot整合Elasticsearch | |||
| ElasticsearchRepository操作索引 | |||
| 查詢操作 | |||
| 8 | RabbitMQ | 訊息佇列 | |
| 訊息佇列的優缺點 | |||
| 主流的訊息佇列 | |||
| RabbitMQ的安裝 | |||
| RabbitMQ的幾種訊息佇列模式 | |||
| SpringBoot整合RabbitMQ | |||
| 9 | Redis | Redis簡介 | |
|
Redis安裝和使用
| |||
|
Redis的資料型別
| |||
|
事務
| |||
|
SpringBoot整合Redis
| |||
| 宣告式快取 | |||
| 快取穿透、擊穿、雪崩 | |||
| 淘汰策略 | |||
| 持久化策略 | |||
| 10 | 微信支付 | 支付流程 | |
|
實作微信支付接入
| |||
| 微信平臺通知后臺 | |||
| 11 | JWT單點登錄 | RSA加密演算法 | |
| JWT | |||
| 單點登錄實作流程 | |||
| 解決cookie寫入失敗的問題 | |||
| 15 | 專案實戰:微服務電商專案 | SpringBoot+SpringCloud+RabbitMQ+ES+Redis | |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248520.html
標籤:其他
上一篇:qtmaind. lib(qtmain win.obj) : error LNK2019:無法決議的外部符號main,函式 WinMain 中參考了該符號
