Java後端自學學習路線(附帶學習視頻)

一、Java基礎

· java基礎語法

· 集合

· io

· 多線程

· 併發

· 反射

· 網絡編程

注意:對於Java基礎,其中集合和io是初學Java後端的時候最常用的,特別是集合。對於多線程、併發、反射和網絡編程,初學後端的時候基本用不到,因為你初學的時候不會涉及到這麼深的技術,當然不代表不需要會,如果你面試肯定還是要會的。

這裡學習Java,建議學習Java8(windows下安裝Java8並配置環境變量:https://www.toptech.top/archives/windows-java),因為這一塊的社區比較成熟,如果你學習過程中出現問題,很快都能查找到問題所在。另外現在都已經 JDK 13 了,為什麼還有這麼多公司使用舊版本。Java 8 已經算好的了,有的公司還在使用 7,更有甚者還在用 6,你說是不是很 6。

之所以會出現這種狀況,是因為升級版本耗時費力,最重要的是有可能影響服務的穩定性,雖然說 Java 是向後兼容的,但是誰知道是不是有坑在裡面。在沒有重大安全漏洞或重大性能提升的情況下,大多數公司還是以穩定性為主,既然 Java 8 已經能滿足業務需求了,那就用它好了。

如果你沒有Java學習視頻,請看文末,我會在文末寫到

二、數據庫

對於數據庫方面,現在基本上用的還是MySQL,所以我認為還是學習MySQL。對於MySQL版本的選擇,建議選擇MySQL5.7版本。現在普遍使用的仍然是5.5、5.6和5.7,對於MySQL8,不建議學習,一方面社區不成熟,而且未知的坑.....還沒人踩過(O(∩_∩)O) 安裝教程:windows下的MySQL5.7的下載、安裝以及配置環境變量:https://www.toptech.top/archives/windows-mysql57

學習網站,其實 也不錯,用來入門MySQL。有一個軟件叫做NavicatforMySQL(下載NavicatforMySQL:https://www.toptech.top/s/file),這個軟件相當於MySQL的圖形化界面,不用使用CMD來操作MySQL了,當然這個軟件也可以使用命令行語句,初學MySQL還是不建議使用這個軟件,一些MySQL語句還是多練習比較好,特別是多表複雜查詢,在後來的學習過程中會經常用到。

如果你沒有MySQL學習視頻,請看文末,我會在文末寫到

三、web入門

在如今 Java 開發中,很多開發者只知道怎麼使用框架,但根本不懂 Web 的一些知識點,其實框架很多,但都基本是一個套路,所以在你學習任何框架前,請把 Web 基礎打好,把 Web 基礎打好了,看框架真的是如魚得水。

關於Http協議,這篇文章就寫得很清楚:一文帶你看清 HTTP 所有概念:https://blog.csdn.net/qq_36894974/article/details/104044932

關於JSP,你只要瞭解它其實就是一個Servlet就行了,關於它的一些標籤用法,我認為可以直接忽略,因為現在互聯網幾乎沒哪間公司還用 JSP,除了一些老舊的項目。現在都是流行前後端分離,單頁應用,後端只做 API接口的時代了,所以時間寶貴,把這些時間重點放在Servlet規範上面吧。

關於Tomcat,它是一個Web容器,我們寫的後端項目都要部署到Web容器才能運行,它其實是一個遵循 Http,通過Socket通信與客戶端進行交互的服務端程序:TOMCAT原理詳解及請求過程:https://www.cnblogs.com/hggen/p/6264475.html

四、Web主流框架(SSM)

當然也有一個ssh,ssh通常使用 Struts2為控制器(controller) ,spring 為事務層(service), hibernate 負責持久層(dao)ssm通常使用 springMVC為控制器(controller) ,spring 為事務層(service), MyBatis 負責持久層(dao)

注意:以下內容,沒學過的可能有點蒙...主要看總結就行了。

SSH和SSM區別對比:Struts2和SpringMVC相同:

· spring依賴注入(DI)來管理各層的組件,都是使用AOP切面編程 來管理事務,日誌,權限等。

不同:

· 1.Struts2 和 SpringMVC 控制視圖和模型的交互機制不同

· 2.Strtus2是Action類級別,SpringMVC是方法級別,更容易實現RESTful風格。

Hibernate 和 MyBatis 兩種ORM框架對比

相同:

· 1.Hibernate與MyBatis都是可以通過SessionFactoryBuider由XML配置文件生成SessionFactory,然後由SessionFactory生成Session,最後由Session來開啟事務和SQL語句。其中SessionFactoryBuider,SessionFactory,Session 的生命週期都差不多

· 2.Hibernate和MyBatis都支持JDBC和JTA事務處理

不同:

· 1.MyBatis可以進行更為細緻的SQL優化,可以減少查詢字段

· 2.MyBatis容易掌握,而Hibernate門檻較高

· 3.Hibernate的Dao層開發比MyBatis簡單,MyBatis需要維護SQL和結果映射

· 4.Hibernate對 對象的維護和緩存要比MyBatis好,對增刪改查的對象的維護要方便

· 5.Hibernate數據庫移植性很好,MyBatis的數據庫移植性不好,不同的數據庫需要寫不同的SQL

· 6.Hibernate有更好的二級緩存機制,可以使用第三方緩存。MyBatis本身提供的緩存機制不佳,更新操作不能指定刷新指定記錄,會清空整個表,但是也可以使用第三方緩存

· 7.Hibernate 封裝性好 屏蔽了數據庫差異,自動生成SQL語句。應對數據庫變化能力較弱,SQL語句優化困難

· 8.MyBatis僅實現了SQL語句和對象的映射,需要針對的數據庫寫SQL語句,應對數據庫變化能力較強,SQL語句優化比較方便

總結:SSM和SSH不同主要在MVC實現方式,以及ORM持久化方面不同(Hiibernate與Mybatis)SSM越來越輕量級配置,將註解開發發揮到極致,且ORM實現更加靈活,SQL優化更簡便;SSH較注重配置開發,其中的Hiibernate對JDBC的完整封裝更面向對象,對增刪改查的數據維護更自動化,但SQL優化方面較弱,且入門門檻稍高。

綜上初學者建議SSM,當然目前很多項目已經不是用SSM開發了,但是為什麼還要學習呢,因為很多古董級別的項目可能還是SSM開發的,你需要懂啊,另外對於SSM其中對重要的是Spring,Spring全家桶的很多框都是非常流行的,而且Spring是基礎。You need to know!

Spring 其核心思想就是 IOC 和 AOP:

參考博客:

·談談對 Spring IOC 的理解:https://www.cnblogs.com/zhaozw/p/10857731.html

·Spring面向切面編程:https://www.cnblogs.com/jiaweit/p/9986390.html

SpringMVC 它的思想是全部請求統一用一個 Servlet 去做請求轉發與控制,這個 Servlet 叫 DispatcherServlet:

參考博客:

·SpringMVC初始化過程:https://www.cnblogs.com/hellowhy/p/9737885.html

·SpringMVC處理請求過程:https://www.cnblogs.com/hellowhy/p/9737885.html

Mybatis 它可實現動態拼裝 sql,避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集,這個Mybatis框架相對比較簡單。多注意:動態拼接Sql。

如果你沒有SSM學習視頻,請看文末,我會在文末寫到

五、Web進階

學完Spring你肯定有感覺,這配置也太複雜了,寫一個項目,jing是xml文件。SpringBoot 彌補了 Spring 配置上的缺點,再也不用為繁雜的 xml 費勁精力了,堪稱是 Java 後端開發的顛覆者,推薦書籍「Java EE 開發的顛覆者:SpringBoot實戰」

SpringCloud 是一個微服務架構,能夠將項目按照業務分成一個個微服務,每個微服務都可獨立部署,服務之間互相協調。當一個項目越來越大時,隨之而來的是越來越難以維護,此時將項目拆分成若干個微服務、單獨維護、單獨部署,也可以降低項目不同業務間的耦合度。推薦書籍「Spring Cloud 與 Docker 微服務架構實戰」,這本書將 Docker 與微服務完美地結合在一起,堪稱完美!

當你學到這一塊的時候,特別是Spring Cloud的時候可能會感覺比較吃力,這一塊比較複雜,但是新技術正在向此發展,也可以學學。

如果你沒有Spring Boot、spring Cloud學習視頻,請看文末,我會在文末寫到

六、你需要掌握的其他技術

嘗試用git或者github,maven,shiro對你的項目進行升級.

·git官網https://git-scm.com/

·git教程https://www.runoob.com/git/git-tutorial.html

·mavenhttps://www.runoob.com/maven/maven-tutorial.html

· 其實maven在學習SSM的時候都應該用了...比較方便

· shiro不推薦學習SSM的時候就學習shiro,因為這個時候整合比較麻煩,建議學習Springboot的時候,再學習shiro,這個時候整合Shiro比較方便快捷、易懂。

參考視頻/博客:

SpringBoot與Shiro整合-權限管理實戰視頻:https://www.bilibili.com/video/av40342174

七、開發工具

工欲善其事,必先利其器,以下是我推薦的一些開發工具:

· Intellij IDEA:Java 開發最好的 IDE,這個是公認的最好的Java編輯器,不接受反駁。

· Chrome:Chrome瀏覽器就不需要解釋了吧,程序員必備瀏覽器....

· Postman:很好用的一個接口調試工具。

八、寫在最後

如果你準備走Java後端而不走前端的話也建議學習一些前端基礎和框架,比如基礎的h5、css、js,框架的話比如:layui、vue至少自己在寫一下自己的小項目的時候不至於前端一點不懂…...

如果你感覺此文對你有幫助,麻煩點個贊?點個收藏?點個轉發?順便點個關注?(●ˇ∀ˇ●)

以上總結,只代表個人看法,只是想分享一下關於web後端的學習路線,讓對此感興趣的人有一個大致的學習路線,如有不足之處,歡迎大佬指出。對於學習視頻,個人蒐集了很多視頻,為了方便自己、方便大家查找個人寫了一個網站可以直接搜索相關關鍵字的視頻。網站地址:http://toptech.top:88/learn-resource


分享到:


相關文章: