Java Web 學習路線

Java Web 學習路線

Author:@Zealot
Date:2018/10/22前端

. 前言

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

. 導圖

  • 總體圖
    來自牛客網
    來自牛客網
  • 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)、三大範式等

非科班的如下科目找書來瀏覽一遍(沒學過,很少說)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 消息隊列

  • ActiveMQ/Rabbitmq等

. 18 人文

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

. 參考

. End

相關文章
相關標籤/搜索