Java Web 學習路線
Author:@Zealot
Date:2018/10/22前端
. 前言
本文用於 NMID 內部技術交流,各模塊闡述比較籠統,具體學習細節靠本身和參考學習手冊。
菜雞一枚,歡迎各位大佬提出任何建議,將不勝感激。java
. 導圖
- 總體圖
來自牛客網
- Java SE
Java SE
- Java EE
Java EE
- Another Version
阿里雲版本
. 0 走進計算機的世界
- 《浪潮之巔》 吳軍 人民郵電出版社
講述IT行業興衰史。
- 《計算機導論》 楊繼萍 錢偉 清華大學出版社
科普向,介紹計算機基礎知識。
- 《計算機科學導論》 Behrouz Forouzan 機械工業出版社
大學計算機相關專業的基礎課教材,涉及計算機科學的各個方面。着重講解基本概念而不是數學模型和技術細節。
- 《計算機科學概論》 J. Glenn Brookshe 人民郵電出版社
國外頂尖大學教材,描繪計算機科學各個子學科主要領域。
. 1 基礎知識
- 能夠看下教務在線提供的教學大綱和考綱以作更多瞭解
- C語言程序設計 ★★★★★
基本數據類型、關係運算符、程序結構流程控制、指針、結構體、文件操做、面向過程編程思想
- 數據結構 ★★★★★
各類數據結構基本概念和特色,各類數據結構的增刪查改操做實現算法、各類數據結構的應用場景、常見排序查找算法的特色和實現
推薦書籍:《大話數據結構》程傑
- 計算機網絡 ★★★★★
OSI七層模型各層功能和常見協議,網絡層(IP)、運輸層(TCP/UDP)、應用層(HTTP/DNS/FTP/SMTP)及其對應端口。
IP:幀結構,各種地址,劃分子網等
TCP:協議特色、三次握手和四次揮手過程和原理、如何進行流量控制
UDP:協議特色、與TCP的比較
HTTP:報文結構、工做流程和原理
DNS:工做流程和原理
- 算法分析與設計 ★★★★★
算法複雜度分析、常見算法思想:貪心、動態規劃等等
推薦書籍:《算法設計與分析基礎》第三版 Anany Levitin 清華大學出版社 譯者:潘彥
刷題!刷題!刷題!牛客 & LeetCode & CodeForces
- 數據庫原理 ★★★★★
模式、ER關係、經常使用SQL(DDL,DML)、三大範式等
非科班的如下科目找書來瀏覽一遍(沒學過,很少說)mysql
- 計算機組織與結構 ★★★★
- 操做系統 ★★★★(內存/線程/進程)
- 軟件工程 ★★★★(項目工程)
- 編譯原理 ★★★
. 2 Java SE
- 建議先看完視頻再看書
推薦書籍:Head First Java / Java核心技術 / Effective Java
- 基本語法,經常使用接口(看API)
Date,Sql,Math,Calendar,Arrays,Collections,Atomic,Concurrent,包裝類等
- 面向對象
面向對象編程思想
類&對象,其結構,代碼初始化順序,相互調用等
三大特色(封裝、繼承、多態)的具體細節 WHAT & WHY & HOW
- 異常
- Java併發編程
基本概念(同異步,併發行,阻塞,死鎖等);
線程基本操做,線程6種狀態,線程間通訊,線程池使用,JDK併發包等
- String & StringBuffer & StringBuilder
源碼,特色,異同
- 集合框架
List,Map,Set,Tree,Queue,Stack
熟悉整個框架體系結構(UML圖),看源碼分析,掌握底層數據結構,實現原理和特色,擴展機制,適用場景等
掌握泛型機制,具有利用泛型開發的抽象思想
- IO 流
文件基本操做(讀寫),字節流,字符流,File類等
能夠本身寫個HttpUtilAPI
- 網絡編程
Socket,NIO(結合併發編程),TCP&UDP方式等實現通訊
- 反射(框架靈魂)
WHAT,WHY,HOW,在框架中的應用
Class類,如何得到並調用類的屬性和方法等
. 3 JVM
- JVM啓動
JVM生命週期
- VM經常使用參數配置
- 類與對象
對象表示機制,類狀態轉換(Class文件格式、加載連接初始化過程)
雙親委派機制
實例建立流程
- 運行時數據區
內存模型,各區做用和特性(堆、棧、方法區、PC計數器)
永久代,新生代,老年代(特色,分區,如何晉升等)
- GC(垃圾收集)
回收算法:標記清除,複製,標記壓縮
分代收集
- 垃圾收集器
串行/並行,CMS,G1收集器
- 調優分析
查看配置JVM,GC日誌
jinfo
jstat
jstack
. 4 設計模式(23種)
- 單例模式
特色及應用場景
必會:手寫單例(餓漢,懶漢,內部類),能區分三種方式的異同優劣
- 其餘
常見設計模式:責任鏈,代理,適配器,橋接,裝飾等
掌握思想,經典實現,使用狀況等
. 5 Mysql
- 推薦書籍:Mysql必知必會 / 高性能Mysql / Mysql技術內幕(偏DBA)
- 體系結構
組成模塊
- Sql
AUID,Sql優化,Sql分析,Sql執行流程
- 存儲引擎
Innodb,Mysiam,Memory各自特色和應用場景
- 隔離級別
- 索引
優缺點,原理,實現細節,數據結構(B,B+樹原理)
- 視圖
- 存儲過程
. 7 (Web) Servlet & JSP
- 推薦書籍:《Java Web開發詳解》孫鑫
- 掌握MVC模型
看書吧,略過了。
. 8 服務器
- Tomcat
啓動分析,體系結構
- Nginx
反向代理
- Jetty
. 9 Linux
. 10 敏捷開發&協做開發
- IDEA
項目構建流程、經常使用快捷鍵、各類黑科技(目的都是爲了效率)、代碼調試
- Maven/Gradle
命令、依賴格式、異同等
- 前端調試
接口測試、google控制檯(F12)
- Github
常見操做(Clone,Commit,Push,Merge,Star,Fork等)
- Git
如上點常見命令,操做要規範,語句要明確
. 11 (Web) Spring
- 上手作最重要
核心模塊,DI,IOC,AOP,註解,攔截器,SpringMVC
. 12 (Web) Mybatis
. 13 (Web) SpringBoot
- 上手作最重要
瞭解原理、基於Spring來體會SpringBoot帶來的不一樣
. 14 NoSql
- Redis
推薦書籍:Redis開發與運維 / Redis設計與實現
底層原理,數據結構,常見命令,通訊協議,Jedis,持久化,複製,哨兵,集羣。緩存設計等等
- MongoDB&Memcached
不瞭解,很少嗶嗶
- 至少掌握一個,瞭解全部的,說得出異同
. 15 分佈式
- 負載均衡/分佈式數據庫/分佈式應用集羣
- RPC
- Dubbo
- ZooKeeper
. 16 緩存
- Redis
- Memcached
- Ehcache
- 等等
. 17 消息隊列
. 18 人文
- 技術之瞳——阿里巴巴技術筆試心得
- 卓有成效的程序員
- 程序員修煉之道
- 禪與摩托車維修藝術
- 頸椎病康復指南 (╯°Д°)╯( ┻━┻
. 參考
. End