最近有網(wǎng)友問為什么沒有Java后端,還有些是想轉過來,但都不太了解Java后端究竟需要學什么,究竟要從哪里學起,哪些是主流的Java后端技術等等,導致想學,但又很迷茫,不知從何下手。
這篇也不一定都對,但都是根據(jù)統(tǒng)計總結出來的,供你們的參考。
Java基礎
Java是一門純粹的面向?qū)ο蟮木幊陶Z言,所以除了基礎語法之外,必須得弄懂它的oop特性:封裝、繼承、多態(tài)。此外還有泛型、反射的特性,很多框架的技術都依賴它,比如Spring核心的Ioc和AOP,都用到了反射,而且Java自身的動態(tài)代理也是利用反射實現(xiàn)的。
此外還有Java一些標準庫也是非常常見,比如集合、I/O、并發(fā),幾乎在Web開發(fā)中無處不在,也是面試經(jīng)常會被問到的,所以在自學Java后端之前,不妨先打好這些基礎。
另外還有Java8的一些新特性,也要重點關注,比如Lambda表達式、集合的Stream流操作、全新的DateAPI等等,
關于書籍推薦,我是不建議初學者一開始就拿著「Java編程思想」啃的,因為當初我就是那個當天下午決定自學Java,晚上就抱著這本書啃的人,說實話,我當時真的不懂它在說啥,因為我沒有一點的面向?qū)ο笳Z言編程的基礎,而這本書又寫得太博大精深了,在當時的我來說,完全是天書,但是我認為它仍然是Java界的圣經(jīng),每讀一次都有所收獲。
在這里推薦你們一開始先看「Java核心技術」,這本書講得比較通俗易懂,初學者比較能接受。
當然現(xiàn)在很多平臺也都有免費視頻教程,也可以去看一下,最好是一整套完整的Java教學視頻,不然就會是東一點,西一點不全面反而學的迷茫要沒信心。
數(shù)據(jù)庫
關于sql方面:SQL教程、MySQL教程
我是了解了一些基礎語法之后,就直接跟著視頻的老師做一些表操作實戰(zhàn)練習了,比如單表查詢、多表查詢等。我建議學sql切勿眼高手低,需多加練習,不要只看懂了就行,因為工作中寫得一手簡練的sql是非常重要的。
在這里我說下我在項目一直秉承著sql語句是能避免多表查詢就避免多表查詢,能夠分開多條語句就分開多條語句,因為這里涉及到多表查詢性能和數(shù)據(jù)庫擴展的問題。
關于JDBC方面:JDBC教程、JDBC獲取連接對象源碼分析
你需要弄懂JDBCAPI的用法,其實它只是一組規(guī)范接口,所有數(shù)據(jù)庫驅(qū)動只要實現(xiàn)了JDBC,那么我們就可以通過標準的API調(diào)用相應的驅(qū)動,完全不用知道驅(qū)動是怎么實現(xiàn)的,這就是面向接口編程的好處。
Web基礎
曾經(jīng)開源中國創(chuàng)始人紅薯寫了一篇文章「初學JavaWeb開發(fā),請遠離各種框架,從Servlet開發(fā)」,我覺得他說的太對了,在如今Java開發(fā)中,很多開發(fā)者只知道怎么使用框架,但根本不懂Web的一些知識點,其實框架很多,但都基本是一個套路,所以在你學習任何框架前,請把Web基礎打好,把Web基礎打好了,看框架真的是如魚得水。
關于Http協(xié)議這部分內(nèi)容比較簡單搜集一些相關資料就能學會,不贅述。
關于Web基礎這方面數(shù)據(jù)推薦,我當時是看的是「Tomcat與JavaWeb開發(fā)技術詳解」,很詳細地講解了整個JavaWeb開發(fā)的技術知識點,但現(xiàn)在看來,我覺得里面講的有一些技術確實有點老舊了,不過可以了解一下JavaWeb開發(fā)的歷史也是不錯的。
關于JSP,你只要了解它其實就是一個Servlet就行了,關于它的一些標簽用法,我認為可以直接忽略,因為現(xiàn)在互聯(lián)網(wǎng)幾乎沒哪間公司還用JSP,除了一些老舊的項目?,F(xiàn)在都是流行前后端分離,單頁應用,后端只做API接口的時代了,所以時間寶貴,把這些時間重點放在Servlet規(guī)范上面吧。
關于Tomcat,它是一個Web容器,我們寫的后端項目都要部署到Web容器才能運行,它其實是一個遵循Http,通過Socket通信與客戶端進行交互的服務端程序:Tomcat結構及處理請求過程。
推薦書籍:Tomcat與JavaWeb開發(fā)技術詳解
Web主流框架
JavaWeb框架多如牛毛,等你有一定經(jīng)驗了,你也可以寫一個Web框架,網(wǎng)上很多說Spring、Struts2、Hibernate是Java三架馬車。
我只想說,那是很久遠的事情了,我嚴重不推薦Struts2、Hibernate,相信我,一開始只需要上手Spring、SpringMVC、Mybatis就可以了,特別是Spring框架,其實Spring家族的框架都是很不錯的。
但是提醒一點就是,千萬不要沉迷于各種框架不能自拔,以會多種用法而沾沾自喜,導致知其然而不知其所以然。
Spring其核心思想就是IOC和AOP:
談談對SpringIOC的理解
Spring面向切面編程
SpringMVC它的思想是全部請求統(tǒng)一用一個Servlet去做請求轉發(fā)與控制,這個Servlet叫DispatcherServlet
Mybatis它可實現(xiàn)動態(tài)拼裝sql,避免了幾乎所有的JDBC代碼和手動設置參數(shù)以及獲取結果集
Web框架進階
使用了SSM框架后,你會覺得框架也不過這么回事,如果你對Spring有過大概了解,你也會產(chǎn)生想寫一個「山寨版」Spring的心思了,一個輕量級Web框架主要具備以下功能:
可讀取用戶自定義配置文件,并以此來初始化框架;
具備Bean容器,管理項目的類的對象生命周期;
具備依賴注入,降低類之間的耦合性;
具備AOP功能,使項目可進行橫向編程,可不改變原有代碼的情況增加業(yè)務邏輯;
具備MVC框架模式。
其實除了SSM之外,Web框架可謂是百家齊放,其中以Spring全家桶最為耀眼,在這里我極力推薦兩個Spring家族框架:SpringBoot和SpringCloud。
SpringBoot彌補了Spring配置上的缺點,再也不用為繁雜的xml費勁精力了,堪稱是Java后端開發(fā)的顛覆者,推薦書籍「JavaEE開發(fā)的顛覆者:SpringBoot實戰(zhàn)」
SpringCloud是一個微服務架構,能夠?qū)㈨椖堪凑諛I(yè)務分成一個個微服務,每個微服務都可獨立部署,服務之間互相協(xié)調(diào)。
當一個項目越來越大時,隨之而來的是越來越難以維護,此時將項目拆分成若干個微服務、單獨維護、單獨部署,也可以降低項目不同業(yè)務間的耦合度。
推薦書籍「SpringCloud與Docker微服務架構實戰(zhàn)」,這本書將Docker與微服務完美地結合在一起,堪稱完美!
其它技術
Redis:一個高性能的key-value數(shù)據(jù)庫,當有并發(fā)量很高的請求時,將數(shù)據(jù)緩存在Redis中,將提高服務器的響應性能,大大減輕數(shù)據(jù)庫的壓力。
Git:世界上最先進的分布式版本控制系統(tǒng),建議所有初學者從命令行開始使用Git!
Maven:一個用于構建項目的工具,將項目間的依賴通過xml完美地組織到一起,可通過編譯插件將項目編譯成字節(jié)碼文件。還有類似的Gradle也是不錯的選擇。
maven的pom.xml文件詳解
Linux:至少要求常用的命令會用,能夠在linux環(huán)境下部署項目。
最全的SSH連接遠程終端教程
Docker:簡直是項目部署神器啊,來不及解釋了,推薦書籍「Docker技術入門與實戰(zhàn)」,中國首部Docker著作!
開發(fā)工具
工欲善其事,必先利其器,以下是我推薦的一些開發(fā)工具:
IntellijIDEA:Java開發(fā)最好的IDE,這個是公認的,我一開始是用Eclipse的,后來用了IntellijIDEA,才發(fā)現(xiàn)Eclipse就是一坨屎,所以我以過來人勸你們不要使用Eclipse,直接IntellijIDEA!
Iterm2:macOS最好用的終端!
Chrome:人生苦短,請用Chrome,來不及解釋了,快上車!
Postman:很好用的一個接口調(diào)試工具。
要有進取心,要有拼搏的精神,要耐得住寂寞,經(jīng)過多方理論與實踐相結合,快速成為高薪程序員根本不是事兒。
以上就是天津卓眾教育java培訓機構小編介紹的“2019最新Java后端學習路線圖總結”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。