java後端開發需要學習的知識有:1、Java基礎語法與oop特性;2、資料庫相關知識,範例SQL語言、MySQL、非關係型資料庫;3、Web基礎知識;4、 Web主流框架,例Spring、SpringMVC、Mybatis;5、前端知識等。
本篇將大致介紹後端從基礎到獨立後端的學習路線,僅供參考。
推薦課程:Java教學。
Java 基礎
Java 是純粹的物件導向的程式語言,所以除了基礎語法之外,必須弄清楚它的oop 特性:封裝、繼承、多型。此外還有泛型、反射 的特性,許多框架的技術都依賴它,像是 Spring 核心的 Ioc 和 AOP,都用到了反射,而且 Java 自身的動態代理也是利用反射實現的。 另外還有 Java 有些標準函式庫也是非常常見,像是集合、I/O、並發,幾乎在 Web 開發中無所不在,也是面試常會被問到的,所以在學 Java 後端之前,不妨先打好這些基礎,另外還有 Java8 的一些新特性,也要重點關注,例如 Lambda 表達式、集合的 Stream 流操作、全新的 Date API 等等,關於新功能。
關於書籍推薦,我是不建議初學者一開始就拿著「Java 程式設計思想」啃的,因為當初我就是那個當天下午決定自學 Java,晚上就抱著這本 書啃的人,說實話,我當時真的不懂它在說啥,因為我沒有一點的面向對象語言編程的基礎,而這本書又寫得太博大精深了,在當時的我來說,完全是天書,但我認為它仍然是Java 界的聖經,每讀一次都有所收穫。我在這裡推薦你們一開始先看“Java 核心技術”,這本書講得比較通俗易懂,初學者比較能接受。
資料庫
關於sql 方面:SQL 教學、MySQL 教學
我是了解一些基本語法之後,就直接跟著影片的老師做有些表操作實戰練習了,像是單表查詢、多表查詢等。我建議學 sql 切勿眼高手 低,需多加練習,不要只看懂了就行,因為工作中寫得一手簡練的 sql 是非常重要的。這裡我說下我在專案一直秉持著 sql 語句是能避免多表查詢就避免多表查詢,能夠分開多條語句就分開多條語句,因為這裡涉及到多表查詢效能和資料庫擴充的問題。
關於JDBC 方面:JDBC 教程、 JDBC 獲取連接對像源碼分析
你需要弄清楚JDBC API 的用法,其實它只是一組規範接口,所有數據庫驅動只要實現了JDBC,那我們就可以透過標準的API 呼叫對應的驅動,完全不用知道驅動是怎麼實現的,這就是面向介面程式設計的好處。而且對於JDBC 我是直接看影片去理解的,跟著影片做了一個基於Apache Dbutils 工具做了一個具有事務性的小工具,我特意用心智圖總結了一下:
##Web 基礎
曾經開源中國創始人紅薯寫了一篇文章“初學Java Web 開發,請遠離各種框架,從Servlet 開發”,我覺得他說的太對了,在如今Java 開發中,很多開發者只知道怎麼使用框架,但根本不懂Web 的一些知識點,其實框架很多,但都基本上是一個套路,所以在你學習任何框 架前,請把 Web 基礎打好,把 Web 基礎打好了,看框架真的是如魚得水。 關於Http 協議,這篇文章就寫得很清楚:Http協議關於Web 基礎這方面數據推薦,我當時是看的是「Tomcat 與Java Web 開發技術詳解」 ,很詳細地講解了整個Java Web 開發的技術 知識點,但現在看來,我覺得裡面講的有一些技術確實有點老舊了,不過可以了解一下 Java Web 開發的歷史也是不錯的。所以在 Web 基礎這方面我都是看某客的崔老師講的「超全面 Java Web 影片教學」,講得很詳細很生動,還有實戰計畫! 關於JSP,你只要了解它其實就是一個Servlet 就行了,關於它的一些標籤用法,我認為可以直接忽略,因為現在互聯網幾乎沒哪間公司還用JSP ,除了一些老舊的項目。現在都是流行前後端分離,單頁應用,後端只做 API 介面的時代了,所以時間寶貴,把這些時間重點放在 Servlet 規範上面吧。 關於 Tomcat,它是一個 Web 容器,我們寫的後端專案都要部署到Web容器才能運行,它其實是一個遵循 Http,透過 Socket 通訊與客 戶端進行互動的服務端程式:Tomcat架構及處理請求程序Web 主流框架
Java Web 框架多如牛毛,等你有一定經驗了,你也可以寫一個Web 框架,網上很多說Spring、Struts2、Hibernate 是Java 三架馬車,我只想說,那是很久遠的事情了,我嚴重不推薦Struts2、Hibernate,相信我,一開始只需要上手Spring、SpringMVC、Mybatis 就可以了,特別是Spring 框架,其實Spring 家族的框架都是很不錯的。
但是提醒一點就是,千萬不要沉迷於各種框架不能自拔,以會多種用法而沾沾自喜,導致知其然而不知其所以然。
Spring其核心思想就是IOC 和AOP:
談談對Spring IOC 的理解
Spring 面向切面編程
SpringMVC 它的思想是全部請求統一用一個Servlet 去做請求轉送與控制,這個Servlet 叫DispatcherServlet:
SpringMVC 初始化過程
SpringMVC 處理請求過程
Mybatis 它可實現動態拼裝sql,避免了幾乎所有的JDBC 程式碼和手動設定參數以及取得結果集:
mybatis 入門教學
Mybatis 深入淺出系列
##Web 框架進階
使用了SSM 框架後,你會覺得框架也不過這麼回事,如果你對Spring 有過大概了解,你也會產生想寫一個「山寨版」Spring 的心思 了,一個輕量級Web 框架主要具備以下功能:可讀取用戶自訂設定文件,並以此來初始化框架;具備Bean 容器,管理專案的類別的物件生命週期;具備依賴注入,降低類別之間的耦合性;具備AOP 功能,使專案可進行橫向編程,可不改變原有程式碼的情況增加業務邏輯; 具備MVC 框架模式。 其實除了 SSM 之外,Web 框架可謂是百家齊放,其中以 Spring 全家桶最為耀眼,在這裡我極力推薦兩個 Spring 家族框架:SpringBoot 和 SpringCloud。 SpringBoot 彌補了Spring 配置上的缺點,再也不用為繁雜的xml 費勁精力了,堪稱是Java 後端開發的顛覆者,推薦書籍「Java EE 開發的顛覆者:SpringBoot實戰」 SpringBoot 建立web 專案SpringBoot 自動化配置原始碼分析自訂SpringBoot Starterspring-boot-starter-tutorial# SpringCloud 是一個微服務架構,能夠將專案依照業務分成一個個微服務,每個微服務都可獨立部署,服務之間互相協調。當一個專案越來越大時,隨之而來的是越來越難以維護,此時將專案拆分成若干個微服務、單獨維護、單獨部署,也可以降低專案不同業務間的耦合度。推薦書籍「Spring Cloud 與 Docker 微服務架構實戰」,這本書將 Docker 與微服務完美地結合在一起,堪稱完美!以上是Java後端開發要學什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!