Java全棧學習路線、學習資源和面試題一條龍


肝了一個月,終於把Java學習路線、面試題資源和電子書資源都整理好了。

Java 從基礎到微服務的學習路線,其中還包括科班知識、學習建議、后續的學習引導和相應的學習資源(視頻、書籍、網站),還整理了Java 面試題,資源都在文末

寫這一篇文章的目的很明確,在個人能力的基礎上給小伙伴一個循環漸進的 Java全棧學習路線。為小伙伴布好道路,讓學習的路途盡可能的通暢。

在這里點綴下個人對編程的三個層次的理解:

  1. 從學會使用(知其表)

  2. 到深入架構設計原理(知其理)

  3. 再到自研技術(思想鑄造)

而本文的學習路線只有前面兩個層次,關於“自研層面”屬於思想的再創作,恕我無能為力。

能力有限,如有不對,還望糾正。

0.知識廣度和深度

對於從事技術開發行業,着重的是技術的應用,技術知識使用起來才能實現它的價值。技術知識的廣度就像金字塔的底部,深度就像金字塔的高度,金字塔的底面積大小將決定金字塔的高低,知識面的廣度決定深度,深度將決定你在這行業能不能混的好的基礎,如果你是做技術的話。

廣度:可通過不斷學習新技術來拓寬;

深度:基於已有知識深入研究其奧妙。

在這學習路線一開始就先拓寬技術知識面,着重技術的基礎使用;后續再深入學習,學習其中的架構設計原理,理解設計者的核心思想,從而提高知識的深度,不至於只知其表不知其理。深入學習后漸漸地就會感受到編程思想帶來的質變,是編程能力提高最關鍵的一步,也是邁進“自研層面”的第一步。

 

每階段都配有學習網站和相應書籍,還有階段項目鞏固所學知識。

1.第一部分:Java基礎

必須理解面向對象編程,並掌握Java基礎知識怎么使用,通過Java編程語言實現一些功能。比如:實現程序和文本的讀寫(內存和磁盤的交互),簡單的多人聊天室(客戶端和服務端的交互)。

領悟兩點:

第一點:有了這些基礎,你可以嘗試看看源碼(比如:String類的源碼),部分源碼看得懂了,可能比較費勁。

第二點:所有的服務端編程語言都具備IO流、網絡編程、多線程等等這些基礎能力,掌握一門編程語言基礎對於學習其他編程語言基礎那就簡單多了。

2.第二部分:MySQL基礎

掌握命令的方式操作MySQL 的基礎使用;通過JDBC 技術實現對MySQL數據庫數據的增刪查改。

3.第三部分:JavaWeb

前面兩部分是學習Java應用的開發,這部分開始學習Java的web系統開發,主要學習JavaWeb 基礎和前端基礎知識。學習完這部分,可以基於JavaWeb開發網站、管理系統等,比如:基於JavaWeb的后台管理系統、音樂網站。但是目前直接使用JavaWeb 基礎技術開發web系統的很少,一般都是使用框架技術快速開發安全又美觀的系統。所以接下來學習主流框架技術。

4.第四部分:主流框架和技術

框架技術主要分為前端和后端框架,目前國內前端以Vue全家桶為主,整合各種框架來完成前端開發;后端以SSM框架技術為主,整合其他框架來完成后端開發。開發框架的主要作用是避免重復造輪子,提高開發效率,降低運維難度,降低人員成本,降低項目風險等等。

學到這里應該知道一些網站架構模式:分層模式,集群模式,緩存模式。

  • 分層模式:常見的有MVC,MVVM,7層的網絡通信協議等等。

  • 集群模式:多台服務器部署相同的應用構成一個集群,並通過負載均衡設備共同對外提供服務,提高可用性和並發數。

  • 緩存模式:使用緩存技術提高系統性能。

學習這些模式的使用帶來新的問題

  • 集群模式帶來的新問題,如:有/無狀態服務。

  • 緩存模式帶來的新問題,如:緩存穿透。

  • 通過緩存模式解決集群模式帶來的新問題,如:會話記錄。

先學會框架的使用,再通過閱讀源碼、相關文檔來掌握框架中使用到的編程思想、編程技巧和架構設計,最后在開發的過程中是否能使用上這些編程思想、編程技巧和架構設計。

5.第五部分:回顧並進階

這部分主要是進階之前的學習內容和學習更多技術,這都是分布式功能實現需要用到的基礎技術。當業務服務變得越來越復雜,部署的服務也越來越多,服務之間錯綜復雜,難於管理時,就需要自動化的東西替代人類勞動力去解決這一系列問題,所以下個部分內容就是學習分布式服務治理和微服務知識。

6.第六部分:微服務篇

學習各種各樣的技術來解決分布式帶來的新問題,這些技術的實現都是為了治理錯綜復雜的業務服務,並提高業務響應速度,服務可用性,性能,擴展性和安全性等等。

7.編程基礎的擴展--科班知識(內功)

這一部分的學習是枯燥的,是要掉頭發的,但又是必須學習的。關於必學的內容都放前面了,尤其是軟件工程、計算機網絡、操作系統、數據結構和算法。

8.學習更多

不斷學習成長,往更高處走。這只是拋磚引玉,真的要深入學這幾本書還真不夠。比如架構設計,要從程序員走向架構師,這必須得學;想了解更多有關“雲技術”,可以到阿里等各大雲平台的開發者社區學習等等。這個就看自己的選擇了。

9.學習的一些建議

以上是個人的一些建議。在這里給愛拖延的小伙伴一個行之有效的建議:別干想,行動起來。

10.面試篇

面試資源主要都是來源於網絡,做了分類整理,也將部分不易於閱讀的處理了(很費時間……)

比如:

處理前:朦朧和擋住了部分內容

處理后:

11.總結

從Java基礎到微服務的學習路線和相應的電子書,都已經分享到GitHub,

GitHub鏈接:https://github.com/yuantingyue/JavaLearningRoutes-Books

后續會不斷完善學習路線和學習資源,分享更多的知識和更多資源,一起成長,共勉🤝

想獲得最新消息可關注WX公眾號:Java全棧布道師

點贊走起👉

原創不易,轉載指明出處,違者必究!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM