聲明,本人能力有限,只是列出來參考,不對之處歡迎指正。
一門永不過時的編程語言——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框架的高階使用
因文章內容過多分上下篇
文章中圖片真實可靠,需要學習視頻私信“資料”二字免費領取
如果覺得還不錯的話,可以點點關注,和轉發
此文章爲原創, 著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。