Web後端 JAVA學習之路
阿新 • • 發佈:2019-03-09
事務 站點 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學習之路