Java Web 學習路線

ZealotZZZ發表於2018-10-22

Java Web 學習路線

Author:@Zealot
Date:2018/10/22

. 前言

本文用於 NMID 內部技術交流,各模組闡述比較籠統,具體學習細節靠自己和參考學習手冊。
菜雞一枚,歡迎各位大佬提出任何建議,將不勝感激。

. 導圖

  • 整體圖
    來自牛客網
    來自牛客網
  • Java SE
    Java SE
    Java SE
  • Java EE
    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)、三大正規化等

非科班的以下科目找書來瀏覽一遍(沒學過,不多說)

  • 計算機組織與結構 ★★★★
  • 作業系統 ★★★★(記憶體/執行緒/程式)
  • 軟體工程 ★★★★(專案工程)
  • 編譯原理 ★★★

. 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 訊息佇列

  • ActiveMQ/Rabbitmq等

. 18 人文

  • 技術之瞳——阿里巴巴技術筆試心得
  • 卓有成效的程式設計師
  • 程式設計師修煉之道
  • 禪與摩托車維修藝術
  • 頸椎病康復指南 (╯°Д°)╯( ┻━┻

. 參考

. End

相關文章