2020最新全面Java學習路線及視訊(萬字長文)

馬士兵-小果發表於2020-11-21

2020最新全面Java學習路線及視訊(萬字長文)

 

宣告,本人能力有限,只是列出來參考,不對之處歡迎指正。

一門永不過時的程式語言——Java 軟體開發。

Java程式語言佔比:

據官方資料統計,在全球程式語言工程師的數量上,Java程式語言以1000萬的程式設計師數量位居首位。 而且很多軟體的開發都離不開Java程式設計,因此其程式設計師的數量最多。而在以Java程式設計為核心的開發領域中,javaEE程式設計師的需求量10年來一直居於首位!

Java工程師就業:

1.通過各大招聘網站統計,全國海量公司都在招聘Java開發工程師

2.北京Java開發工程師平均薪資,即19208元

3.全國Java開發薪資前三:北京 上海 深圳

Java到底學什麼?

很多人可以剛學完Java時完全不知道Java的結構是怎樣的,導致學習的知識點零星、散落,這也是為什麼明明很基礎的內容,但是一段時間之後自己卻想不起來是怎麼寫的。沒有梳理知識的脈絡,將所學打通,融匯於一處。廢話了一通。

 

Java學習路線

共細分16個部分

第一階段_java開篇

第2階段 :JAVA語言語法

第3階段:整合開發工具的使用

第4階段:物件導向

第5階段:JavaSE進階學習

第6階段 :資料庫+JDBC

第7階段 :前端精講

第8階段 :演算法篇

第9階段 :JavaEE

第10階段 :工具的使用

第11階段 :Linux

第12階段 :SSM框架的使用

第13階段 :SpringBoot的使用

第14階段 : 面試篇

第15階段:微服務階段

第16階段:分散式

第一階段_java開篇

java初步 計算機語言的發展歷史


  • 程式中常見錯誤
  • 編譯方式擴充套件: classpath環境變數
  • 擴充套件 : JAVA_HOME 環境變數
  • API
  • 程式碼量統計工具的使用
  • 單行註釋和多行註釋
  • 文件註釋
  • 反編譯工具的使用
  • 本章最後一段程式碼
  • 擴充套件面試題 :JDK ,JRE
  • JAVA簡史
  • JAVA體系結構
  • JAVA特性和優勢
  • JAVA核心機制之垃圾收集機制
  • 核心機制之 JAVA跨平臺原理
  • JAVA核心機制之對比C語言的跨平臺原理
  • JAVA常用的DOS命令
  • notepad++的安裝
  • 第一段程式_ 編譯 _執行

2020最新全面Java學習路線及視訊(萬字長文)

學習視訊私信“學習”免費領取

第2階段 :JAVA語言語法

資料型別 識別符號

  • 關鍵字
  • 常量_字面常量
  • 變數的宣告,賦值,使用 (重要
  • 變數的記憶體(重要)
  • 變數的作用域
  • 基本資料型別之整數型別變數
  • 基本資料型別之浮點型別常量的兩種形式
  • 基本資料型別之浮點型別變數
  • 基本資料型別之字元型別(1-2)
  • 解釋亂碼問題
  • 基本資料型別之布林型別
  • 基本資料型別轉換問題
  • 習題:fifinal_字元常量
  • 習題 _ 加深對Scanner的使用

運算子

  • JAVA中的運算子概述
  • 算數運算子_除法 _取餘
  • 算數運算子_加號
  • 算數運算子 _自增
  • 賦值運算子
  • 擴充套件數值運算子
  • 關係運算子
  • 邏輯運算子
  • 三元運算子
  • 位運算子
  • 運算子_總結
  • 運算子的優先順序別

流程控制

  • 引入
  • 分支結構_if單分支
  • 分支結構_if多分支
  • 隨機數
  • 分支的巢狀使用_練習1
  • 分支的巢狀使用_練習2
  • 分支結構_switch分支
  • 迴圈結構_while迴圈
  • 迴圈結構_while迴圈練習
  • 迴圈結構_do-while迴圈
  • 迴圈結構_for迴圈
  • 迴圈結構_關鍵字break
  • 迴圈結構_關鍵字continue
  • 迴圈結構_迴圈練習
  • 迴圈結構_迴圈巢狀
  •  

2020最新全面Java學習路線及視訊(萬字長文)

學習視訊私信“學習”免費領取

階段專案:小鯊魚記賬軟體

  • 引入
  • 專案最終效果演示
  • 整體結構完成
  • 登記收入
  • 登記支出
  • 收支明細錯誤細節
  • 退出功能
  •  

2020最新全面Java學習路線及視訊(萬字長文)

學習視訊私信“學習”免費領取

方法的定義,呼叫,過載

  • 方法的定義和呼叫
  • 方法提取的練習
  • 面試題 _兩個數交換是否成功
  • 方法的過載

陣列

  • 陣列的引用
  • 陣列的學習
  • 陣列習題完善_陣列的遍歷方式
  • 陣列的三種初始化方式
  • 陣列的應用_最值問題
  • 陣列的應用_查詢問題
  • 陣列的應用_新增元素
  • 陣列的應用_刪除元素
  • 詳述main方法
  • 可變引數
  • Arrays工具類的使用
  • 陣列的複製
  • 二維陣列的定義和遍歷
  • 二維陣列的初始化方式

階段專案:雙色球彩票模擬系統

  • 需求介紹
  • 涉及技能點
  • 專案演示
  • 選單展示
  • 購買彩票
  • 開獎整體結構完善
  • 生成中獎單號細節
  • 對比號碼細節和完善
  •  

2020最新全面Java學習路線及視訊(萬字長文)

學習視訊私信“學習”免費領取

第3階段:整合開發工具的使用

IDEA的基本使用教程

  • IDE的概念
  • JetBrains公司介紹
  • Intellij IEDA介紹
  • IDEA的下載_安裝前的準備工作
  • IDEA的解除安裝
  • IDEA的安裝和破解
  • IDEA頁面展示
  • Module 的概念和使用
  • IDEA的常用設定
  • IDEA的常用快捷鍵

  • 程式碼模板是什麼
  • 常用的程式碼模板
  • 修改程式碼模板
  • 建立程式碼模板
  • 斷電除錯_常用斷點除錯快捷鍵
  • 斷點除錯_條件判斷
  • 斷點除錯_檢視錶達式值
  • 建立JavaWeb專案
  • 在IDEA中新增Tomcat的映象
  • 在IDEA中配置Git
  • 在IDEA中配置Maven

 

第4階段:物件導向

物件導向

  • 物件導向_程式導向和麵向物件的區別
  • 物件導向_類和物件的關係
  • 物件導向_物件導向三個階段
  • 物件導向_建立類
  • 物件導向_建立物件
  • 物件導向_區域性變數和成員變數的區別
  • 物件導向_構造器
  • 物件導向_構造器的過載
  • 物件導向_記憶體分析
  • 物件導向_this的使用
  • 物件導向_static修飾屬性
  • 物件導向_static修飾方法
  • 物件導向_程式碼塊
  • 物件導向_ 包 _import _

封裝

  • 封裝的總結
  • 繼承的引入
  • 繼承的程式碼演示
  • 繼承總結
  • 繼承的記憶體分析
  • 許可權修飾符
  • 方法的重寫
  • super修飾屬性 ,方法
  • super修飾構造器
  • super修飾構造器補充
  • 繼承條件下構造方法的執行過程
  • Object類的toSring方法
  • Object類的equals方法(1)
  • Object類的equals方法(2)_ instanceof
  • Object類的equals方法(3)
  • 類和類之間的關係1
  • 多型
  • 多型記憶體分析
  • 向上轉型_ 向下轉型
  • 簡單工廠設計模式
  • fifinal修飾符
  • 抽象類_抽象方法
  • 介面(JDK1.8之前)
  • 介面(JDK1.8之後新增)
  • 內部類_ 成員內部類
  • 內部類_ 區域性內部類

階段專案:比薩點餐系統

  • 專案需求
  • 專案結構分析
  • 父類子類建立
  • 測試類邏輯
  • 工廠類的提取

2020最新全面Java學習路線及視訊(萬字長文)

學習視訊私信“學習”免費領取

階段專案:貪吃蛇小遊戲

  • 引入
  • 小蛇行動原理圖
  • 將圖片載入到程式中來
  • 建立窗體
  • 建立皮膚
  • 畫靜態的小蛇
  • 將蛇頭按照行走方向改變
  • 加入監聽,空格來控制遊戲是否開
  • 小蛇向右動起來
  • 小蛇上下左右動起來
  • 畫食物吃食物
  • 畫積分
  • 死亡判定
  • 遊戲打包
  •  

 

2020最新全面Java學習路線及視訊(萬字長文)

圖片中的學習視訊私信“資料”免費領取

第5階段:JavaSE進階學習

異常

  • 異常的案例引入
  • 處理異常方式:if-else
  • 處理異常方式:try-catch捕獲
  • catch中處理異常的幾種方式
  • fifinally講解
  • 多重catch
  • 異常的分類/層次結構
  • throw和throws的區別
  • 異常練習
  • 過載和重寫異常的區別
  • 自定義異常

常用類

  • 包裝類_引入
  • 包裝類常用屬性常用構造器
  • 包裝類自動裝箱自動拆箱
  • 包裝類_常用方法
  • 日期相關_java.util.Date
  • 日期相關_java.sql.Date
  • 日期相關_SimpleDateFormat
  • 日期相關_Calendar
  • 日期相關_Calendar練習需求
  • 日期相關_Calendar練習完成
  • 日期相關_JDK1.8新增日期時間API的原因
  • 日期相關_JDK1.8新增LocalDateTime
  • 日期相關_JDK1.8新增LocalDateTim
  • 日期相關_JDK1.8新增DateTimeFormatter
  • Math類
  • Random類
  • String的底層本質

集合

  • 什麼是演算法什麼是資料結構
  • 緊密結構,跳轉結
  • 集合的引入
  • 簡要集合結構圖
  • 集合的應用場合
  • Cllection介面的常用方法
  • Cllection介面的遍歷方式
  • List介面
  • ArrayList實現類JDK1.7原始碼
  • ArrayList實現類JDK1 .8原始碼
  • Vector實現類原始碼
  • 泛型的引入
  • 自定義泛型結構泛型類泛型介面
  • 自定義泛型結構泛型類泛型介面細節
  • 自定義泛型結構泛型方法
  • 自定義泛型結構泛型引數存在繼承關係的情況
  • 自定義泛型結構萬用字元
  • 自定義泛型結構萬用字元使用的細節
  • 自定義泛型結構泛型受限
  • LinkedList實現類的使用
  • LinkedL ist簡要底層原理圖
  • 模擬LinkedList原始碼
  • LinkedL ist原始碼解析(JDK1.8)
  • iterator()面試題
  • 迭代器具體實現
  • Listlterator迭代器
  • Set介面介紹
  • HashSet的特點
  • HashSet的簡要原理
  • HashSet原理留下的疑問
  • LinkedHashSet的使用
  • 比較器的使用
  • TreeSet的使用及原理
  • Map介面中常用方法1
  • Map介面中常用方法2
  • Hashtable的使用
  • TreeMap的使用
  • HashMap的原理簡單介紹
  • HashMap中重要屬性
  • HashMap的構造器
  • HashMap的put方法
  • HashMap底層陣列的擴容
  • HashMap的兩個經典面試題
  • HashSet底層原理
  • TreeMap底層原始碼
  • TreeSet底層原始碼
  • Collections工具類
  •  

2020最新全面Java學習路線及視訊(萬字長文)

 

IO流

  • File類的引入
  • File對檔案的操作
  • File對目錄的操作
  • I0流的引入
  • FileReader讀取檔案內容(1.2)
  • FileWriter寫出資料操作
  • FileReader,FileWriter完成檔案複製
  • 警告-不要用字元流去操作非文字檔案
  • 利用try-catch-fifinally處理異常方式
  • FilelnputStream讀取檔案中內容
  • FilelnputStream,FileOutputStream完成非文字檔案的複製緩衝位元組流(處理流)- BufferedInputStream ,BufferedOutputStream
  • 比對非文字檔案複製的三種方法的效率
  • 緩衝字元流(處理流)-BufferedReader,BufferedWriter完成文字檔案的複製
  • 轉換流-InputStreamReader,OutputStreamWriter
  • 轉換流-InputStreamReader,OutputStreamWriter實現文字檔案的複製
  • System類對I0流的支援
  • 練習:鍵盤錄入內容輸出到檔案中
  • 資料流- DatalnputStream,DataOutputStream
  • 物件流序列化和反序列化
  • 實現Serializable介面
  • serialVersionUlD
  • IDEA中配置序列化版本號
  • 序列化細節

多執行緒

網路程式設計

  • 網路程式設計的引入
  • InetAddress,InetSocketAddress
  • 網路通訊原理套接字的引入
  • TCP通訊單向通訊
  • TCP通訊物件流傳送
  • TCP通訊加入完整的處理異常方式
  • TCP通訊_多執行緒接收使用者請求
  • UDP通訊_單向通訊
  • UDP通訊_雙向通訊
  • UDP通訊加入完整的異常處理方式
  • UDP通訊完整正常通訊

階段專案:坦克大戰

  • new出一個視窗
  • 設定標題欄內容
  • TankFrame從Frame繼承+顯示
  • 認識paint方法,重寫
  • 學習graphics類,畫圖
  • 學習repaint方法
  • 實現MyKeyListener,對鍵盤作出響應
  • MyKeyListener
  • 取得具體按鍵資訊
  • 根據具體按鍵調整坦克位置,持有對方引用
  • 抽象出坦克類,學習使用列舉型別
  • MyKeyListener,TankFrame
  • 用匿名內部類處理視窗關閉
  • 根據按鍵狀態,改變坦克方向
  • 用雙緩衝消除閃爍
  • 加一堆敵人坦克
  • 做碰撞檢測
  • 顯示爆炸
  • 加入聲音
  • 讓敵人坦克更加智慧
  • 對坦克和子彈加入 Group屬性
  • 測試Properties類的使用
  • 建立PropertyMgr類
  • MV分開 Model View分離
  • GameModel 改成單例模式
  • 對於碰撞的處理
  • 建立例項
  • 抽象出遊戲物體的父類
  • 合成GameModel中的各種不同物體
  • 完善責任鏈模式
  • 加入牆
  • 按鍵切換髮射策略
  • 實現暫停功能
  • 實現存檔功能
  • 使用Junit測試伺服器loop
  • 去掉敵人的坦克(機器控制的坦克)
  • 處理接收到的訊息
  • player新的構造方法
  • 讓後來人能看到先加入者
  • 加入坦克方向改變的訊息
  • 重構程式碼
  • 處理改變坦克方向的訊息
  • 傳送主戰坦克停止的訊息
  • 傳送主戰坦克開始移動的訊息(方向沒變)
  • 加入子彈和Player的撞擊邏輯
  • 把主戰坦克也加入到List中
  • 完成坦克大戰網路版
  • 根據坦克方向移動位置
  • 能停,能動
  • test包,關於classloader的知識
  • 將坦克換成圖片版
  • 畫出一顆子彈,讓子彈飛一會兒
  • 按下ctrl鍵,主戰坦克打出一發炮彈
  • 打出多發子彈
  • 子彈從坦克中心位置打出
  • 子彈消亡(飛出遊戲區)
  • 定義rectangle屬性,不用每次都new
  • 炮彈new出來自動加入容器,死掉後自動去除
  • 分離玩家和機器人,對邊界進行不同的處理

JUnit

  • Junit單元測試引入
  • 沒有Junit的情況下如何測試
  • Junit的使用
  • @Before_ @After

列舉

  • 引入自定義列舉類
  • JDK1.5後使用enum關鍵字定義列舉類
  • enum定義列舉類補充
  • Enum類的常用方法
  • 列舉類實現介面
  • 列舉的應用

註解

  • 註解的引入
  • 註解例項_Junit註解
  • 註解例項_文件註解
  • 註解例項_JDK內建的3個註解
  • 註解例項_替代配置檔案的註解
  • 自定義註解
  • 元註解的概念解釋
  • 元註解_Retention
  • 元註解_Retention補充
  • 元註解_Target
  • 元註解_Documented
  • 元註解_Inherited

反射機制

  • 反射的引入
  • 反射概念
  • Class類
  • 提供豐富的類
  • 獲取位元組碼資訊的四種方式
  • 可以作為Class類的例項的種類
  • 補充上面的豐富的類中的內容
  • 獲取構造器和建立物件
  • 獲取屬性和對屬性進行賦值
  • 獲取方法和呼叫方法
  • 獲取類的介面,所在包,註解
  • 關於反射的面試題

第6階段 :資料庫+JDBC

 

2020最新全面Java學習路線及視訊(萬字長文)

 

Oracle+MySQL+JDBC

  • oracle安裝介紹
  • oracle SQL
  • oracle函式和多表連線
  • oracle的join語法及行專列
  • oracle檢視、使用者管理、序列、DML
  • 資料庫的事務
  • 資料庫表的建立、表的約束、索引、資料庫
  • JDBC及程式碼分層
  • 反射技術實現及封裝
  • DBUtil及資料庫連線池(dbcp、c3p0)
  • 資料庫連線池(druid、hikariCP)及索引
  • mysql的執行計劃
  • mysql的鎖機制
  • mysql的主從複製和讀寫分離

MyCat

  • MyCat第一講.第二講.第三講

第7階段 :前端精講

HTML

  • HTML和CSS的引入
  • 網路傳輸三大基石
  • 什麼是HTML
  • HTML的標準結構
  • HBuilder的使用
  • html_head_body標籤
  • head中可用標籤
  • 文字標籤
  • 多媒體標籤
  • 超連結標籤
  • +
  • 超連結設定錨點
  • 列表標籤
  • 列表標籤
  • 內嵌框架
  • 內嵌框架練習 (1.2)
  • 框架集合
  • form表單的作用
  • form表單細節
  • form表單練習模擬百度搜尋
  • 表單元素(1)
  • 表單元素(2)
  • HTML5新增type型別
  • HTML5新增屬性
  •  

2020最新全面Java學習路線及視訊(萬字長文)

 

CSS

  • CSS的引入
  • CSS的三種書寫方式
  • 明白學習CSS的重點
  • 選擇器_基本選擇器
  • 選擇器關係選擇器
  • 選擇器_屬性選擇器
  • 選擇器_偽類選擇器
  • 練習:百度導航欄
  • 浮動的原理
  • 消除浮動影響
  • 定位_靜態定位相對定位
  • 定位絕對定位
  • 定位_固定定位
  • 盒子模型引入
  • 盒子模型程式碼演示
  • 盒子模型練習題

JS

  • js介紹及內建功能函式、資料型別、變數
  • js的變數及運算子
  • js的流程控制語句
  • js的函式基本使用
  • js的陣列和字串的基本使用
  • dom操作、常用方法、事件繫結
  • echarts和js物件、函式上下文
  • js建構函式、js原型鏈、繼承及實戰案例

JQuery

  • jquery簡介、選擇器、常用方法
  • jquery的節點關係及函式操作
  • jquery輪播圖及函式庫介紹)

Ajax

  • Http協議、php的基本介紹
  • ajax基本原理及使用
  • ajax的接受資料的方式及三級聯通案例
  • Vue框架的介紹及使用
  • vue框架的介紹及使用
  • vue框架的調色盤、屬性值監聽、函式
  • vue框架的生命週期、元件使用
  • vue框架的高階使用

因文章內容過多分上下篇

文章中圖片真實可靠,需要學習視訊私信“資料”二字免費領取

如果覺得還不錯的話,可以點點關注,和轉發

此文章為原創, 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

《Java學習、面試;文件、視訊資源免費獲取》

相關文章