Java學(xué)習(xí)路線一條龍

作者 | 磊哥
來源 | Java中文社群(ID:javacn666)
轉(zhuǎn)載請聯(lián)系授權(quán)(微信ID:GG_Stone)
Java 要掌握的技術(shù)點(diǎn)如下:
-
JavaSE(Java Standard Edition,Java 基礎(chǔ)) -
計(jì)算機(jī)基礎(chǔ)和網(wǎng)絡(luò) -
并發(fā)編程 -
常見數(shù)據(jù)結(jié)構(gòu)和算法 -
MySQL 數(shù)據(jù)庫 -
Spring 全家桶(Spring/Spring MVC/Spring Boot) -
MyBatis/MyBatis Plus -
Java 虛擬機(jī)(JVM) -
Redis 中間件 -
消息隊(duì)列 -
Spring Cloud 體系(社招 1-3 年工作經(jīng)驗(yàn)需要學(xué)習(xí))
接下來我們來看下這些模塊中的重點(diǎn)內(nèi)容是什么,以及如何學(xué)習(xí)這些知識點(diǎn)?
1.JavaSE
JavaSE 是整個(gè) Java 語言的開端和基礎(chǔ),JavaSE 中的重點(diǎn)知識如下圖所示:
學(xué)習(xí)資料
-
視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1Cv411372m -
圖文學(xué)習(xí)資料:https://www.nowcoder.com/tutorial/10001/5fc0c07cd9d44e66b3baafd76f1f5b9f
注意:視頻學(xué)習(xí)資料和圖文學(xué)習(xí)資料中的知識點(diǎn)都是相同的,同學(xué)根據(jù)自己的喜歡選擇一種或多種搭配學(xué)習(xí)即可。比如你有一點(diǎn) Java 基礎(chǔ),那么可以選擇圖文資料學(xué)習(xí)即可,因?yàn)閳D文學(xué)習(xí)效率更高。
2.計(jì)算機(jī)基礎(chǔ)和網(wǎng)絡(luò)
作為 Java 程序員計(jì)算機(jī)基礎(chǔ)和網(wǎng)絡(luò)也是需要掌握的,但不需要掌握的太深,因?yàn)?Java 不會直接和操作系統(tǒng)打交道,但如果不理解計(jì)算機(jī)基礎(chǔ)和網(wǎng)絡(luò)是搞不清楚程序執(zhí)行的一些底層原理和細(xì)節(jié)的,尤其對于校招來說,計(jì)算機(jī)網(wǎng)絡(luò)是必問的幾大模塊之一,而且問的也很細(xì)。計(jì)算機(jī)基礎(chǔ)和網(wǎng)絡(luò)中需要掌握的知識有以下三大塊:
2.1 計(jì)算機(jī)操作系統(tǒng)(核心)
計(jì)算機(jī)操作系統(tǒng)(核心部分)需要掌握基礎(chǔ)的概念和運(yùn)作流程即可,核心知識點(diǎn)如下圖所示:
學(xué)習(xí)資料
-
圖文學(xué)習(xí)資料:https://mp.weixin.qq.com/s/G9ZqwEMxjrG5LbgYwM5ACQ
2.2 計(jì)算機(jī)網(wǎng)絡(luò)(重要)
計(jì)算機(jī)網(wǎng)絡(luò)需要掌握的知識點(diǎn)相對來說比較多,在校招和社招中也是必問的面試點(diǎn),它的主要內(nèi)容有以下這些:
學(xué)習(xí)資料
-
圖文學(xué)習(xí)資料:https://mp.weixin.qq.com/s/7EddtzpwIRvYfw34QE4zvw
2.3 Linux
Linux 只需要掌握基礎(chǔ)的概念和常用操作命令即可。
學(xué)習(xí)資料
-
圖文學(xué)習(xí)資料:https://pdai.tech/md/devops/linux/linux.html
3.并發(fā)編程
并發(fā)編程屬于 Java 程序員必須掌握的核心知識,它的知識點(diǎn)也比較多,如下圖所示:
學(xué)習(xí)資料
-
視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV16J411h7Rd
-
圖文學(xué)習(xí)資料:https://juejin.cn/column/6961569911638327310
4.常見數(shù)據(jù)結(jié)構(gòu)和算法
校招常見的數(shù)據(jù)結(jié)構(gòu)和算法考的比較多,并且在筆試中必須要過算法題才能通過考核進(jìn)入到面試階段,所以平日中刷算法屬于必做的事情之一。但刷算法也要講解策略和效率,如果想要快速提升算法能力以及筆試通過率,一定要去刷牛客《面試必刷 TOP 101》:https://www.nowcoder.com/exam/oj
學(xué)習(xí)資料
-
數(shù)據(jù)結(jié)構(gòu)視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1Kb41127fT
-
數(shù)據(jù)結(jié)構(gòu)和算法視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1E4411H73v/
刷算法心得
-
學(xué)習(xí)算法的關(guān)鍵是練習(xí),就像學(xué)習(xí)游泳必須要下水一樣,學(xué)習(xí)算法的關(guān)鍵就是多刷題,刷題的平臺有牛客、賽碼和力扣,給自己訂個(gè)小目標(biāo)每天堅(jiān)持刷 5 道題。 -
刷題是學(xué)習(xí)編程中最難的環(huán)節(jié)了,并且這個(gè)環(huán)節(jié)只能靠自己一點(diǎn)點(diǎn)刷題才行,但在刷題時(shí),一定不要死磕!一定不要死磕!一定不要死磕!在做一道題時(shí),如果 2-5 分鐘沒有思路,直接去看題解就好,看完題解之后還不懂就去看代碼的實(shí)現(xiàn),再不懂就跟著代碼一步步敲,要知道,刷算法不懂是常態(tài)。如果寫了幾遍代碼看了幾遍題解還是理解不了,沒關(guān)系,不要糾結(jié)、不要懊悔,把它記錄下來,繼續(xù)刷下一道算法即可,等過段時(shí)間再回過頭來看這道題。
5.MySQL
后端開發(fā)由兩大部分組成:程序 + 數(shù)據(jù)庫。
而數(shù)據(jù)庫中最流行的莫過于 MySQL 了,所以 MySQL 也是程序員必須掌握的核心知識,它的核心知識點(diǎn)如下圖所示:
學(xué)習(xí)資料
-
視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1Kr4y1i7ru/
-
圖文學(xué)習(xí)資料:https://www.javacn.site/mysql/
6.Spring 全家桶
校招不要求會 Spring Cloud 技術(shù)棧,所以這里的 Spring 全家桶是指:Spring + Spring Web(Spring MVC) + Spring Boot。
Java 程序員也可以稱之為 Spring 程序員,因?yàn)閹缀跛械捻?xiàng)目都是 Spring/Spring Boot 類型的項(xiàng)目,它的核心知識點(diǎn)如下圖所示:
學(xué)習(xí)資料
-
視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1WZ4y1P7Bp/
-
面試題推薦:https://www.javacn.site/spring/
7.MyBatis/MyBatis Plus
MyBatis 是用來操作數(shù)據(jù)庫的,它在國內(nèi)非常流行,幾乎所有的 Java 公司都在用,而 MyBatis Plus 是對 MyBatis 框架的增強(qiáng)和補(bǔ)充,讓 MyBatis 用起來更簡單。
學(xué)習(xí)資料
-
MyBatis 視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1VP4y1c7j7/
-
Mybatis Plus 視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1VP4y1c7j7/
8.Java 虛擬機(jī)(JVM)
JVM 是校招和社招中必問的知識點(diǎn),因?yàn)樗?Java 程序都是運(yùn)行在 JVM 上的,它的核心知識點(diǎn)如下:
學(xué)習(xí)資料
-
視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1PJ411n7xZ
-
書籍推薦:《深入理解Java虛擬機(jī)》第三版
-
面試題學(xué)習(xí)資料:https://www.javacn.site/jvm/
9.Redis
Redis 是企業(yè)中用的最多的中間件,沒有之一,它被廣泛用于緩存存儲、會話保存等場景,它的核心知識點(diǎn)如下:
學(xué)習(xí)資料
-
視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1cr4y1671t/
-
面試學(xué)習(xí)資料:https://www.javacn.site/redis/
10.消息隊(duì)列
消息隊(duì)列可用于消峰、解耦和異步處理,幾乎每個(gè)公司都有用,目前市面上比較主流的 MQ 框架有:
-
Kafka
-
RabbitMQ
-
RocketMQ
當(dāng)然,對于開發(fā)者來說,上面的 MQ 框架只需要掌握一個(gè)即可(它們的功能和使用都是類似的),以 Kafka 為例,它的重點(diǎn)內(nèi)容如下:
學(xué)習(xí)資料
-
Kafka 視頻學(xué)習(xí)資料:https://www.bilibili.com/video/BV1vr4y1677k
11.Spring Cloud
Spring Cloud 不是一個(gè)具體的技術(shù),而是一套技術(shù)規(guī)范,是若干個(gè)框架的集合,提供了全套的分布式系統(tǒng)解決方案。針對與 Spring Cloud 的技術(shù)實(shí)現(xiàn)目前比較流行的實(shí)現(xiàn)框架有以下幾個(gè):
其中在國內(nèi)用的比較多的是 Spring Cloud Alibaba,它的技術(shù)棧包括:
-
Nacos:一個(gè)更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。
-
Sentinel:把流量作為切入點(diǎn),從流量控制、熔斷降級、系統(tǒng)負(fù)載保護(hù)等多個(gè)維度保護(hù)服務(wù)的穩(wěn)定性。
-
Seata:是一款開源的分布式事務(wù)解決方案,致力于提供高性能和簡單易用的分布式事務(wù)服務(wù)。
-
RocketMQ:開源的分布式消息系統(tǒng),基于高可用分布式集群技術(shù),提供低延時(shí)的、高可靠的消息發(fā)布與訂閱服務(wù)。
學(xué)習(xí)資料
-
Spring 官方學(xué)習(xí)資料:https://spring.io/projects/spring-cloud
-
Nacos 官方學(xué)習(xí)資料:https://nacos.io/zh-cn/docs/quick-start.html
-
Sentinel 官方學(xué)習(xí)資料:https://sentinelguard.io/zh-cn/
-
Seata 官方學(xué)習(xí)資料:http://seata.io/zh-cn/
-
RocketMQ 官方學(xué)習(xí)資料:https://rocketmq.apache.org/zh/
