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++的安裝

第一段程序_ 編譯 _執行

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

第2階段 :JAVA語言語法

數據類型 標識符

關鍵字

常量_字面常量

變量的聲明,賦值,使用 (重要

變量的內存(重要)

變量的作用域

基本數據類型之整數類型變量

基本數據類型之浮點類型常量的兩種形式

基本數據類型之浮點類型變量

基本數據類型之字符類型(1-2)

解釋亂碼問題

基本數據類型之布爾類型

基本數據類型轉換問題

習題:fifinal_字符常量

習題 _ 加深對Scanner的使用

運算符

JAVA中的運算符概述

算數運算符_除法 _取餘

算數運算符_加號

算數運算符 _自增

賦值運算符

擴展數值運算符

關係運算符

邏輯運算符

三元運算符

位運算符

運算符_總結

運算符的優先級別

流程控制

引入

分支結構_if單分支

分支結構_if多分支

隨機數

分支的嵌套使用_練習1

分支的嵌套使用_練習2

分支結構_switch分支

循環結構_while循環

循環結構_while循環練習

循環結構_do-while循環

循環結構_for循環

循環結構_關鍵字break

循環結構_關鍵字continue

循環結構_循環練習

循環結構_循環嵌套

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

階段項目:小鯊魚記賬軟件

引入

項目最終效果演示

整體結構完成

登記收入

登記支出

收支明細錯誤細節

退出功能

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

方法的定義,調用,重載

方法的定義和調用

方法提取的練習

面試題 _兩個數交換是否成功

方法的重載

數組

數組的引用

數組的學習

數組習題完善_數組的遍歷方式

數組的三種初始化方式

數組的應用_最值問題

數組的應用_查詢問題

數組的應用_添加元素

數組的應用_刪除元素

詳述main方法

可變參數

Arrays工具類的使用

數組的複製

二維數組的定義和遍歷

二維數組的初始化方式

階段項目:雙色球彩票模擬系統

需求介紹

涉及技能點

項目演示

菜單展示

購買彩票

開獎整體結構完善

生成中獎單號細節

對比號碼細節和完善

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

第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之後新增)

內部類_ 成員內部類

內部類_ 局部內部類

階段項目:比薩點餐系統

項目需求

項目結構分析

父類子類創建

測試類邏輯

工廠類的提取

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

階段項目:貪喫蛇小遊戲

引入

小蛇行動原理圖

將圖片加載到程序中來

創建窗體

創建面板

畫靜態的小蛇

將蛇頭按照行走方向改變

加入監聽,空格來控制遊戲是否開

小蛇向右動起來

小蛇上下左右動起來

畫食物喫食物

畫積分

死亡判定

遊戲打包

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

第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工具類

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

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新增屬性

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學習、面試;文檔、視頻資源免費獲取》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章