Java菜鳥教程,Java學習路線圖(視頻+筆記+工具)

不知不覺踏入互聯網行業已經四年了。前端

回顧當初第一次接觸Java,是在大學的課堂,晦澀難懂的知識點,如今還能想起被期末考試支配的恐懼。java

直到踏入互聯網這個行業,再回想一下本身整個入行到工做的歷程,總結了一下學習Java的路線,但願能夠幫到各位初入行的Java小白。程序員

1、大綱

多數事情,都要有目標的行動,行動爲了完成目標。還能夠把目標寫下來或打印出來,貼到身邊明顯的地方,有利於督促本身。web

image.png

學Java,可是不能只學Java,由於在計算機這棵大樹中,Java只是一片葉子。算法

一個合格的Coder,除了Java,還須要熟悉操做系統、計算機網絡、數據庫、前端、中間件、框架等等這些東西,若是要成爲一個Top Coder,項目管理、英語、溝通、算法也很重要。數據庫

就針對就業來講,我的以爲掌握 Java基礎、計算機基礎、工具的使用、數據庫、web前端,Javaweb,框架使用、Linux、中間件,就算一個入門級的Coder了。  編程

1、Java基礎

我把 Java 基礎部分真正要學的內容列一下。後端

0一、Java 簡介 設計模式

  • Java語言概述數組

  • Java中JDK、JRE、JVM三者之間的關係

  • Java中public class與class

  • Java標識符與關鍵字

  • Java 變量

  • Java 數據類型

  • Java運算符

  • Java 表達式 & 語句 & 代碼塊

  • Java中的註釋

0二、Java 控制語句

  • Java if else

  • Java switch 語句

  • Java for 循環

  • Java while 循環

  • Java break 語句

  • Java continue 語句

0三、Java 數組

  • Java 數組

  • 多維數組

  • Java 數組複製

0四、Java 面向對象(1)

  • Java 類和對象

  • Java 方法

  • Java 方法重載

  • Java 構造方法

  • Java 字符串

  • Java 訪問權限

  • Java this 關鍵字

  • Java final 關鍵字

  • Java 遞歸

  • Java instanceof 操做符

0五、Java 面向對象(2)  

  • Java 繼承

  • Java 方法重寫

  • Java super 關鍵字

  • 抽象類 & 抽象方法

  • Java 接口

  • Java 多態

  • Java 封裝

0六、Java 面向對象(3)

  • 嵌套&內部類

  • Java static 關鍵字

  • Java 匿名內部類

  • Java 單例

  • Java 枚舉類

  • Java 枚舉構造方法

  • Java 枚舉字符串

  • Java 反射

0七、Java 異常處理

  • Java 異常簡介

  • Java 異常處理

  • Java try catch

  • Java throw 和 throws

  • Java 捕獲多個異常

  • Java try-with-resources

  • Java 註解

  • Java 註解類型

  • Java 日誌

  • Java 斷言

0八、Java 集合

  • Java 集合框架

  • Java 集合接口

  • Java List 接口

  • Java ArrayList

  • Java Vector

  • Java Stack

0九、Java 隊列

  • Java 隊列接口

  • Java 優先級隊列

  • Java 雙端隊列接口

  • Java LinkedList

  • Java 數組隊列

  • Java 阻塞隊列接口

  • Java ArrayBlockingQueue

  • Java LinkedBlockingQueue

十、Java Map  

  • Java Map 接口

  • Java HashMap

  • Java LinkedHashMap

  • Java WeakHashMap

  • Java EnumMap

  • Java SortedMap 接口

  • Java NavigableMap 接口

  • Java TreeMap

  • Java ConcurrentMap 接口

  • Java ConcurrentHashMap

十一、Java Set

  • Java Set 接口

  • Java HashSet

  • Java EnumSet

  • Java LinkedHashSet

  • Java SortedSet 接口

  • Java NavigableSet 接口

  • Java TreeSet

  • Java 集合算法

  • Java 迭代器接口

  • Java ListIterator 接口

十二、Java 字節流

  • Java IO 流簡介

  • Java InputStream

  • Java OutputStream

  • Java FileInputStream

  • Java FileOutputStream

  • Java ByteArrayInputStream

  • Java ByteArrayOutputStream

  • Java ObjectInputStream

  • Java ObjectOutputStream

  • Java BufferedInputStream

  • Java BufferedOutputStream

  • Java PrintStream

1三、Java 字符流

  • Java Reader

  • Java Writer

  • Java InputStreamReader

  • Java OutputStreamWriter

  • Java FileReader

  • Java FileWriter

  • Java BufferedReader

  • Java BufferedWriter

  • Java StringWriter

  • Java PrintWriter

1四、Java 併發編程

  • 進程與線

  • 多線程的入門類和接口

  • 線程組和線程優先級

  • 線程的狀態及主要轉化方法

  • 線程間的通訊

  • 重排序和 happens-before

  • volatile

  • synchronized 與鎖

  • CAS 與原子操做

  • AQS

  • 計劃任務

  • Stream 並行計算原理

  • Frok/Join

  • 通訊工具類

  • CopyOnWrite

  • 併發集合容器

  • 鎖接口和類

  • 阻塞隊列

  • 線程池原理

1五、Java 虛擬機

  • Java 內存結構

  • 垃圾回收

  • JVM 內存區域

  • Java 虛擬機棧

  • class 文件

  • 字節碼指令

  • JVM 參數調優

  • Java 對象模型

  • HotSpot

  • 類加載機制

  • 編譯和反編譯

  • 反編譯工具(javap)

  • JIT

  • 虛擬機性能監控和故障處理工具(jps、jstack、jmap、jstat、jconsole、javap)

怎麼系統化的學習呢?

推薦一套視頻,動力節點老杜講的Java零基礎教程,在 B 站上看。

www.bilibili.com/video/BV1Rx…

2、計算機基礎

計算機基礎都包括哪些呢?  

計算機組成原理、操做系統、計算機網絡、數據結構與算法。   計算機組成原理

先說計算機組成原理,這部份內容主要涉及

  • 計算機系統概述

  • 數據與運算

  • CPU 概述

  • 存儲子系統概述

  • 總線和 IO 概述

計算機基礎知識的學習建議學習《計算機專業導論》  

計算機專業導論能夠幫助你對即將學習的學科有一個大體的瞭解,知識注重廣度而非深度。

軟件工程專業的同窗也能夠去看《軟件工程導論》

3、工具的使用

若是你既想寫出質量槓槓的 Java 代碼,又想追求開發效率,用 Intellij IDEA 準沒錯!

能夠去 B 站上看一下這個 Intellij IDEA 的教學視頻。

www.bilibili.com/video/BV14t…

你們都知道,版本控制系統很是重要!!!!!!

即使你只是一我的在編碼,它也能夠幫助你建立項目的快照、記錄每一個改動、建立不一樣的分支等等。

若是你參與的是多人協做,它更是一個無價之寶,你不只能夠看到別人對代碼的修改,還能夠同時解決因爲並行開發帶來的衝突。  

版本控制系統有不少,其中最突出的表明就是 Git。  

想要把 Git 學好的話,能夠看看這套Git教學視頻。  

www.bilibili.com/video/BV1iv…

4、數據庫

Java 實習工做,不外乎增刪改查嘛,不要抱太多幻想,基本上任何一我的的實習經歷,都是從 CRUD 開始的。 要學習MySQL 的話,推薦看下邊這套  

www.bilibili.com/video/BV1fx…

B站上很經典的視頻教程,好評如潮,涵蓋MySQL的所有知識點了

這一套組合拳打下來,找一份實習工做我認爲是徹底沒問題了。

這也是一個 Java 後端程序員必須掌握的技能點,缺一不可!

5、web前端

雖然是做爲Java後端開發Coder,可是面對一個完整的項目,與前端有着不可或缺的關係。  

簡單的前端知識咱們仍是須要了解的。  

還有就是,也不是全部的公司都是區分先後端的,全棧工程師顯然更厲害。  

前端基礎技術(HTML/CSS/JavaScript)

  HTML:

www.bilibili.com/video/BV11t…

CSS:

www.bilibili.com/video/BV1tt…

JavaScript:

www.bilibili.com/video/BV1Ft…

另外推薦一些你會遇到的知識學習教程

Linux基礎知識(用於作web服務器)

www.bilibili.com/video/BV1Li…

Vue.js(最容易上手的前端框架)

www.bilibili.com/video/BV1q5…

6、JavaWeb

Web階段事後,就是JavaWeb了。

推薦這兩套視頻,不一樣版本的,直接跟着視頻學

JavaWeb【IDEA版本】

www.bilibili.com/video/BV1Yz…

JavaWeb【Eclipse經典版】

www.bilibili.com/video/BV18z…

7、框架

要找到一份 Java 實習工做的話,Spring 的系列框架是要懂一些,不要求多熟練,若是能夠掌握一個框架,尤爲是 Spring Boot,那對你也有幫助。由於若是你不會這玩意的話,基本上是作不了項目的。

主要涉及的內容有:

  • Spring

  • Spring MVC

  • MyBatis

  • Spring Boot

關於 SSM(Spring+Spring MVC+MyBatis)的學習,能夠看下面這個視頻。

www.bilibili.com/video/BV1Ug…

關於 Spring Boot 的學習,能夠看下邊這個視頻

www.bilibili.com/video/BV1pK…

學了 SSM + Spring Boot,就能夠上手實戰項目了,像 GitHub 上的 vhr 和 mall,都是不錯的練手項目,強烈推薦。  

8、互聯網分佈式技術

這時候你的水平仍是僅僅存留在對框架的簡單運用上,要想進一步學習,還要找一些框架的源碼,進行深刻了解。  

除此以外還有這個時候的你應該對設計模式瞭如指掌,還須要看一些關於代碼編寫優化的書,提升本身的代碼能力。

能夠學習分佈式架構、微服務等提高本身的技術。

隨着咱們的業務量愈來愈大和越重要,單體的架構模式已經沒法對應大規模的應用場景,並且系統中決不能存在單點故障致使總體不可用,因此只有垂直或是水平拆分業務系統,使其造成一個分佈式的架構,利用分佈式架構來冗餘系統消除單點的故障,從而提升整個系統的可用性。

同時分佈式系統的模塊重用度更高,速度更快,擴展性更高是大型的項目必不可少的環節。

而微服務架構引入策略 – 對傳統企業而言,開始時能夠考慮引入部分合適的微服務架構原則對已有系統進行改造或新建微服務應用,逐步探索及積累微服務架構經驗,而非全盤實施微服務架構。

既然已經踏入互聯網圈子,成爲程序員中的一員,就要秉持「一直學習」的觀念,常常更新本身的技術庫,對於專業的java程序員來講真的不誇張!

推薦視頻:  

總之,先把主要知識點掌握完全掌握,慢一點是正常的,求快得不償失,等把底層基礎知識打牢,在學東西的時候就會快不少,之後徹底能夠多找項目練手,學習效率嗖嗖的,有時候慢就是快。

相關文章
相關標籤/搜索