Web後端 JAVA學習之路

1.Java分類
Java按應用來分,能夠分爲J2ME(手機版),J2SE(標準版),J2EE(企業版)三部分。 
・J2ME:已經被安卓開發取代。 
・J2SE:Java的核心類,其中包括桌面應用,但通常不用Java開發桌面應用。 
・J2EE:已經被以Spring爲表明的開源框架所取代,統稱爲JavaWeb。 

Java程序的優點是Linux下的大規模集羣環境下的代碼編寫,好比大型網站的後臺支撐系統。 
因此,若是不考慮手機應用開發和桌面開發的話,咱們應該按照J2SE+JavaWeb+分佈式系統的路線來學習Java。 

 

2.學習路線簡介
・J2SE學習階段:
完成對Java的語法,編程思想,數據結構和算法的學習。
・JavaWeb學習階段:
完成B/S架構的基礎知識(Html,JavaScript,Ajax,Jsp,Servlet,SQL),產品特性(瀏覽器,服務器,數據庫),框架特性(SSM),設計模式的學習。
・分佈式系統學習階段:
完成分佈式系統的架構,微服務架構(SpringCloud),消息隊列(kafka),緩存(redis),協調中心(zookeeper)等學習。

 

3.學習路線詳細
・J2SE
[推薦書籍]
《Java語言程序設計》大衆化的教科書方式,不深不淺,知識點基本上很全,適合初學者。能夠按照書中目錄瞭解知識點,沒必要深究具體概念。
《深刻理解Java虛擬機》《深刻Java虛擬機》精讀(JVM指令和class文件結構部分不須要精度,瞭解一下便可)
《算法導論》算法證實部分能夠不看,但課後題必定要本身作。
[環境]
DOS環境搭建知道爲何要設置path變量
Eclipse環境搭建會搭建環境便可,不要花費時間研究工具的使用
[基礎]
程序流程圖會畫基本流程圖,用例圖,泳道圖便可,不要花時間研究各類圖
基本數據類型,表達式,函數
分支,循環
一維數組,二維數組
List,Map
對象,類
繼承,封裝,多態
抽象類,接口
異常處理
[圖形界面]
Swing基本組件能畫界面,處理點擊事件便可,不要花費時間
事件分發和監聽機制
自定義事件重點
[I/O]
文件讀寫會讀寫文件便可,其餘隨用隨學
[網絡編程]
TCP/IP協議重點,但不要死背,結合實際應用理解基本的請求格式,返回狀態碼含義
Thread,Runnable結合JMM模型和Concurren包裏的東西看
線程池,線程同步結合JMM模型和Concurren包裏的東西看
生產者消費者重點
Socket實際用起來
[數據庫編程]
SQL(添刪改查)重點
JDBC結合實際用起來,不要死背概念
[數據結構與算法]持久戰,邊學其餘知識邊在leetcode上刷題
大O表示法
數組,鏈表,隊列,棧。
排序(冒泡排序,插入排序,快速排序,堆排序,桶排序等)
二叉樹
Hash散列
動態規劃
圖的遍歷,最短路徑
[Java虛擬機]重點,從調優,排查問題,運行時內存分佈等角度來學習
Java虛擬機結構
類加載機制
垃圾回收機制
[框架技術]不要死背概念,本身作一套框架
Java反射
動態代理(jdk與cglib)

 

・JavaWeb
[推薦書籍]
《HeadFirst設計模式》設計模式不是技術,但要了解每一種設計模式,不要把設計模式做爲重點
《Java併發編程實戰》精讀,結合下面列出的《四火的文章》和《聊聊併發系列》來讀
《構建高性能Web站點》精讀
[推薦文章]
四火的文章
Java 多線程發展簡史
java.util.concurrent 併發包諸類概覽
聊聊併發系列
聊聊併發(一)深刻分析Volatile的實現原理
聊聊併發(二)Java SE1.6中的Synchronized
聊聊併發(三)Java線程池的分析和使用
聊聊併發(四)深刻分析ConcurrentHashMap
聊聊併發(五)原子操做的實現原理
聊聊併發(六)ConcurrentLinkedQueue的實現原理
聊聊併發(七)Java中的阻塞隊列
聊聊併發(八)Fork/Join框架介紹
聊聊併發(九)Java中的CopyOnWrite容器
聊聊併發(十)生產者消費者模式
深刻理解java內存模型系列
深刻理解java內存模型(一)——基礎
深刻理解java內存模型(二)——重排序
深刻理解java內存模型(三)——順序一致性
深刻理解java內存模型(四)——volatile
深刻理解java內存模型(五)——鎖
深刻理解java內存模型(六)——final
深刻理解java內存模型(七)——總結
[基礎知識]
Html,Css,JavaScript,Ajax不要花時間在上面,會作網頁便可,隨用隨學
Jsp,Servlet,Filter,XML
Cookie,Session重點
Http協議重點
Tomcat會用便可
鏈接池重點
[三層模型]
MVC理解概念便可,不要花時間在上面
Service
Dao
[經常使用框架]
Bootstrap不要花時間在上面,會作網頁便可,隨用隨學
JQuery不要花時間在上面,會作網頁便可,隨用隨學
SpringMVC瞭解經常使用配置便可,不要爲了讀源碼而讀源碼
Spring瞭解經常使用配置便可,不要爲了讀源碼而讀源碼
MyBatis瞭解經常使用配置便可,不要爲了讀源碼而讀源碼
[版本管理]
SVN,Git會checkout,checkin便可,不要花時間在上面
[集成]
Maven會用便可,不要花時間在上面
SpringBoot瞭解經常使用配置便可,不要爲了讀源碼而讀源碼
Linux基本操做(ssh,ftp,rpm,iptable,tar...)本身會在linux上安裝各類服務
[併發]重點,結合前面介紹的文章和書來學習
java.util.concurrent包
Java併發簡史
Java併發編程
Java內存模型
[性能]重點
SQL執行計劃
緩存技術
消息隊列
負載均衡技術
查看系統負荷
查看JVM負荷
[其餘]會用便可
WebService
JavaMail
SQL(Join,子查詢,Group by)

 

・分佈式系統學習
[框架]動手實踐,重點
SpringCloud
[經常使用組件]動手實踐,重點
kafka
redis
zookeeper
[理論]動手實踐,重點
CAP理論
分佈式存儲
分佈式事務
相關文章
相關標籤/搜索