Java工程師 基礎+實戰(zhàn) 完整路線圖

Java 基礎

Java 是一門純粹的面向對象的編程語言乐埠,所以除了基礎語法之外,必須得弄懂它的 oop 特性:封裝禽篱、繼承畜伐、多態(tài)。此外還有泛型躺率、反射的特性烤礁,很多框架的技術都依賴它,比如 Spring 核心的 Ioc 和 AOP肥照,都用到了反射,而且 Java 自身的動態(tài)代理也是利用反射實現(xiàn)的勤众。此外還有 Java 一些標準庫也是非常常見舆绎,比如集合酝静、I/O洞焙、并發(fā),幾乎在 Web 開發(fā)中無處不在键菱,也是面試經常會被問到的窥突,所以在自學 Java 后端之前努溃,不妨先打好這些基礎,另外還有 Java8 的一些新特性阻问,也要重點關注梧税,比如 Lambda 表達式、集合的 Stream 流操作称近、全新的 Date API 等等第队,關于新特性,我也寫了幾篇關于這方面的博客刨秆,請自行找吧凳谦,就不貼出來了。

視頻推薦衡未,我當初就是聽某客的畢向東老師講的 Java 基礎教程(畢老師講的實在是太生動有趣了尸执,不知不覺把我?guī)нM Java 的坑里無法自拔家凯,有時候我會聽他視頻時笑出聲來,也許是我那段自學階段最有趣的時刻了如失。

數(shù)據(jù)庫

關于 sql 方面:SQL 教程绊诲、MySQL 教程

我是了解了一些基礎語法之后,就直接跟著視頻的老師做一些表操作實戰(zhàn)練習了岖常,比如單表查詢驯镊、多表查詢等。我建議學 sql 切勿眼高手低竭鞍,需多加練習板惑,不要只看懂了就行,因為工作中寫得一手簡練的 sql 是非常重要的偎快。在這里我說下我在項目一直秉承著 sql 語句是能避免多表查詢就避免多表查詢冯乘,能夠分開多條語句就分開多條語句,因為這里涉及到多表查詢性能和數(shù)據(jù)庫擴展的問題晒夹。

關于 JDBC 方面:JDBC 教程裆馒、?JDBC 獲取連接對象源碼分析

你需要弄懂 JDBC API 的用法,其實它只是一組規(guī)范接口丐怯,所有數(shù)據(jù)庫驅動只要實現(xiàn)了 JDBC喷好,那么我們就可以通過標準的 API 調用相應的驅動,完全不用知道驅動是怎么實現(xiàn)的读跷,這就是面向接口編程的好處梗搅。而且對于 JDBC 我是直接看視頻去理解的,跟著視頻做了一個基于 Apache Dbutils 工具做了一個具有事務性的小工具效览,我特意用思維導圖總結了一下:


Web 基礎

曾經開源中國創(chuàng)始人紅薯寫了一篇文章「初學 Java Web 開發(fā)无切,請遠離各種框架,從 Servlet 開發(fā)」丐枉,我覺得他說的太對了哆键,在如今 Java 開發(fā)中,很多開發(fā)者只知道怎么使用框架瘦锹,但根本不懂 Web 的一些知識點籍嘹,其實框架很多,但都基本是一個套路弯院,所以在你學習任何框架前噩峦,請把 Web 基礎打好,把 Web 基礎打好了抽兆,看框架真的是如魚得水识补。

關于 Web 基礎這方面數(shù)據(jù)推薦,我當時是看的是「Tomcat 與 Java Web 開發(fā)技術詳解」辫红,很詳細地講解了整個 Java Web 開發(fā)的技術知識點凭涂,但現(xiàn)在看來祝辣,我覺得里面講的有一些技術確實有點老舊了,不過可以了解一下 Java Web 開發(fā)的歷史也是不錯的切油。所以在 Web 基礎這方面我都是看某客的崔老師講的「超全面 Java Web 視頻教程」蝙斜,講得很詳細很生動,還有實戰(zhàn)項目澎胡!

關于 JSP孕荠,你只要了解它其實就是一個 Servlet 就行了,關于它的一些標簽用法攻谁,我認為可以直接忽略稚伍,因為現(xiàn)在互聯(lián)網(wǎng)幾乎沒哪間公司還用 JSP,除了一些老舊的項目∑莼拢現(xiàn)在都是流行前后端分離个曙,單頁應用,后端只做 API 接口的時代了受楼,所以時間寶貴垦搬,把這些時間重點放在 Servlet 規(guī)范上面吧。

Web 主流框架

Java Web 框架多如牛毛艳汽,等你有一定經驗了猴贰,你也可以寫一個 Web 框架,網(wǎng)上很多說 Spring河狐、Struts2糟趾、Hibernate 是 Java 三架馬車,我只想說甚牲,那是很久遠的事情了,我嚴重不推薦 Struts2蝶柿、Hibernate丈钙,相信我,一開始只需要上手 Spring交汤、SpringMVC雏赦、Mybatis 就可以了,特別是 Spring 框架芙扎,其實 Spring 家族的框架都是很不錯的星岗。

但是提醒一點就是,千萬不要沉迷于各種框架不能自拔戒洼,以會多種用法而沾沾自喜俏橘,導致知其然而不知其所以然。

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

談談對 Spring IOC 的理解

Spring 面向切面編程

SpringMVC 它的思想是全部請求統(tǒng)一用一個 Servlet 去做請求轉發(fā)與控制圈浇,這個 Servlet 叫 DispatcherServlet:

SpringMVC 初始化過程

SpringMVC 處理請求過程

Mybatis 它可實現(xiàn)動態(tài)拼裝 sql寥掐,避免了幾乎所有的 JDBC 代碼和手動設置參數(shù)以及獲取結果集:

mybatis 入門教程

Mybatis 深入淺出系列

Web 框架進階

使用了 SSM 框架后靴寂,你會覺得框架也不過這么回事,如果你對 Spring 有過大概了解召耘,你也會產生想寫一個「山寨版」Spring 的心思了百炬,一個輕量級 Web 框架主要具備以下功能:

可讀取用戶自定義配置文件,并以此來初始化框架污它;

具備 Bean 容器剖踊,管理項目的類的對象生命周期;

具備依賴注入衫贬,降低類之間的耦合性德澈;

具備 AOP 功能,使項目可進行橫向編程祥山,可不改變原有代碼的情況增加業(yè)務邏輯圃验;

具備 MVC 框架模式。

其實除了 SSM 之外缝呕,Web 框架可謂是百家齊放澳窑,其中以 Spring 全家桶最為耀眼,在這里我極力推薦兩個 Spring 家族框架:SpringBoot 和 SpringCloud供常。

SpringBoot 彌補了 Spring 配置上的缺點摊聋,再也不用為繁雜的 xml 費勁精力了,堪稱是 Java 后端開發(fā)的顛覆者栈暇,推薦書籍「Java EE 開發(fā)的顛覆者:SpringBoot實戰(zhàn)」

SpringBoot 構建 web 項目

SpringBoot 自動化配置源碼分析

自定義 SpringBoot Starter

spring-boot-starter-tutorial

SpringCloud 是一個微服務架構麻裁,能夠將項目按照業(yè)務分成一個個微服務,每個微服務都可獨立部署源祈,服務之間互相協(xié)調煎源。當一個項目越來越大時,隨之而來的是越來越難以維護香缺,此時將項目拆分成若干個微服務手销、單獨維護、單獨部署图张,也可以降低項目不同業(yè)務間的耦合度锋拖。推薦書籍「Spring Cloud 與 Docker 微服務架構實戰(zhàn)」,這本書將 Docker 與微服務完美地結合在一起祸轮,堪稱完美兽埃!

Spring Cloud 中文官網(wǎng)

其它技術

Redis:一個高性能的 key-value 數(shù)據(jù)庫,當有并發(fā)量很高的請求時适袜,將數(shù)據(jù)緩存在 Redis 中柄错,將提高服務器的響應性能,大大減輕數(shù)據(jù)庫的壓力。

redis 中文官網(wǎng)

redis 教程

Git:世界上最先進的分布式版本控制系統(tǒng)鄙陡,建議所有初學者從命令行開始使用 Git冕房!

最全 Git 教程

Git 的一些常用命令

Maven:一個用于構建項目的工具,將項目間的依賴通過 xml 完美地組織到一起趁矾,可通過編譯插件將項目編譯成字節(jié)碼文件耙册。還有類似的 Gradle 也是不錯的選擇。

maven 的 pom.xml 文件詳解

Linux:至少要求常用的命令會用毫捣,能夠在 linux 環(huán)境下部署項目详拙。

Linux 命令大全

最全的 SSH 連接遠程終端教程

Docker:簡直是項目部署神器啊,來不及解釋了蔓同,看我 Docker 系列博客饶辙,開啟 Docker 之旅吧!推薦書籍「Docker 技術入門與實戰(zhàn)」斑粱,中國首部 Docker 著作弃揽!

Docker 實戰(zhàn)(一)

Docker 實戰(zhàn)(二)

Docker 實戰(zhàn)(三)

docker-deploy-tutorial

開發(fā)工具

工欲善其事,必先利其器则北,以下是我推薦的一些開發(fā)工具:

Intellij IDEA:Java 開發(fā)最好的 IDE矿微,這個是公認的,我一開始是用 Eclipse 的尚揣,后來用了 Intellij IDEA涌矢,才發(fā)現(xiàn) Eclipse 就是一坨屎,所以我以過來人勸你們不要使用 Eclipse快骗,直接 Intellij IDEA娜庇!

IntelliJ IDEA 使用教程

Iterm2:macOS 最好用的終端!

Chrome:人生苦短方篮,請用 Chrome名秀,來不及解釋了,快上車藕溅!

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


java語言本身不難學,但是技術太多蜈垮,所以學java很費勁≡U眨回想一下攒发,基本上每個初學者,在剛學習java的時候可能都會問別人這么一句話晋南,你怎么知道的哪個方法(api)在哪個包里的惠猿?呵呵,無他负间,唯手熟爾偶妖。

1 基礎是王道姜凄。我們的基礎要扎實扎實再扎實。

以上面的整個流程來看java的技術分支很多趾访,要想完全掌握是絕對不可能的态秧。我們只有從中精通1到2個部分。但是java也是有通性的扼鞋,所謂萬變不離其宗申鱼。java的所有編程思路都是“面向對象”的編程。所以大家在往更高境界發(fā)展以前一定要打好基礎云头,這樣不管以后是jree還是j3d都有應刃而解的感覺捐友。在這里強烈推薦“java編程思想”.

2 所謂打好基礎并不是說要熟悉所有的java代碼。我說的意思是要了解java的結構溃槐。class,methode,object,各種套用import,extend 讓自己在結構上對java有個立體而且整體的了解即刻匣砖。其實java的學習不用固執(zhí)于對代碼的熟悉,1來java本身帶有很多demo昏滴,java2d

的所有問題幾乎都有demo的樣例猴鲫。2來java是開放代碼,即使沒有demo網(wǎng)絡上也有很多高手把自己的代碼分享影涉。所以不要怕沒有參考变隔,參考是到處都有的。

3 最后還有1點經驗和大家分享蟹倾,對sun的api一定要學會活用匣缘,不論是學習還是作為參考api都有很大的幫助,在完全了解java的結構的基礎上鲜棠,不論什么方法都是可以通過api來找到的.所以不要怕找不到方法肌厨,了解結構,了解api就能找到方法豁陆。

重點

精通:能夠掌握此技術的85%技術要點以上柑爸,使用此技術時間超過兩年,并使用此技術成功實施5個以上的項目盒音。能使用此技術優(yōu)化性能或代碼表鳍,做到最大可能的重用。

熟練:能夠掌握此技術的60%技術要點以上祥诽,使用此技術時間超過一年譬圣,并使用此技術成功實施3個以上的項目。能使用此技術實現(xiàn)軟件需求并有經驗的積累在實現(xiàn)之前能做優(yōu)化設計盡可能的實現(xiàn)模塊或代碼的重用雄坪。

熟悉:能夠掌握此技術的50%技術要點以上厘熟,使用此技術時間超過半年上,并使用此技術成功實施1個以上的項目。能使用此技術實現(xiàn)軟件需求绳姨。

了解:可以在實際需要時參考技術文檔或幫助文件滿足你的需要登澜,基本知道此項技術在你運用是所起的作用,能夠調用或者使用其根據(jù)規(guī)定提供給你的調用方式飘庄。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末脑蠕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子竭宰,更是在濱河造成了極大的恐慌空郊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件切揭,死亡現(xiàn)場離奇詭異狞甚,居然都是意外死亡,警方通過查閱死者的電腦和手機廓旬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門哼审,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人孕豹,你說我怎么就攤上這事涩盾。” “怎么了励背?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵春霍,是天一觀的道長。 經常有香客問我叶眉,道長址儒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任衅疙,我火速辦了婚禮莲趣,結果婚禮上,老公的妹妹穿的比我還像新娘饱溢。我一直安慰自己喧伞,他們只是感情好,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布绩郎。 她就那樣靜靜地躺著潘鲫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肋杖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天兽愤,我揣著相機與錄音,去河邊找鬼浅萧。 笑死逐沙,一個胖子當著我的面吹牛洼畅,可吹牛的內容都是我干的。 我是一名探鬼主播帝簇,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼徘郭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了丧肴?” 一聲冷哼從身側響起残揉,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芋浮,沒想到半個月后抱环,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡纸巷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年镇草,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘤旨。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡梯啤,死狀恐怖,靈堂內的尸體忽然破棺而出存哲,到底是詐尸還是另有隱情因宇,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布宏胯,位于F島的核電站羽嫡,受9級特大地震影響,放射性物質發(fā)生泄漏肩袍。R本人自食惡果不足惜杭棵,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望氛赐。 院中可真熱鬧魂爪,春花似錦、人聲如沸艰管。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牲芋。三九已至撩笆,卻和暖如春捺球,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背夕冲。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工氮兵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歹鱼。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓泣栈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弥姻。 傳聞我的和親對象是個殘疾皇子南片,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內容