1. 程式人生 > >Web後端 JAVA學習之路

Web後端 JAVA學習之路

事務 站點 ssi 分類 eclipse 優勢 zookeeper 分布式系 常用

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理論
分布式存儲
分布式事務

Web後端 JAVA學習之路