日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作

發(fā)布時(shí)間:2024/3/24 java 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

零基礎(chǔ)自學(xué) Java,大概多久可以找到工作?

最近又有一個(gè)讀者“在你的世界各地”向我提了上面這個(gè)問題。但說實(shí)話,這個(gè)問題并不太好問答。因?yàn)?Java 是一門“歷史悠久”的編程語言,它的學(xué)習(xí)資料多到令人眼花繚亂。

但不能為自己找借口啊,畢竟讀者就是上帝。于是我花了一個(gè)月的時(shí)間,精心為你準(zhǔn)備了一份萬字長(zhǎng)文,史上最佳的 Java 自學(xué)指南,保證你能找到一份滿意的工作。

先來梳理一下讀者強(qiáng)調(diào)的關(guān)鍵詞,有 3 個(gè),分別是“零基礎(chǔ)”、“自學(xué)”、“找到工作”。

1)“零基礎(chǔ)”意味著我提供的學(xué)習(xí)路線不能太難,或者說應(yīng)該是循序漸進(jìn)的。

2)“自學(xué)”意味著我提供的學(xué)習(xí)素材不能太枯燥,或者說應(yīng)該是幽默風(fēng)趣的。

3)“找到工作”意味著學(xué)習(xí)周期要盡可能的短,但還要學(xué)有所成。

01、為什么要學(xué) Java

因?yàn)?Java 是世界第一的編程語言啊!誰給的底氣?大概是 TIOBE 這個(gè)編程語言排行榜吧。

TIOBE 是編程語言流行趨勢(shì)的一個(gè)指標(biāo),每月更新,基于互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量。排名使用著名的搜索引擎(Google、Bing、Wikipedia)進(jìn)行計(jì)算。

上面這幅圖是幾個(gè)熱門編程語言(Java、C、Python、JavaScript 等等)近些年來的增長(zhǎng)趨勢(shì)。可以看得出,Java 霸占這份榜單很多年,并且還會(huì)持續(xù)更久。

1)簡(jiǎn)單易學(xué),老少咸宜。Java 繼承了 C++ 語言面向?qū)ο蟮暮诵募夹g(shù),舍棄了容易引起錯(cuò)誤的指針,移除了運(yùn)算符重載和多重繼承等難以理解的概念,增加了垃圾回收機(jī)制,這些大大簡(jiǎn)化了程序員的開發(fā)成本。

2)跨平臺(tái)。任何平臺(tái)只要安裝了 JVM(Java 虛擬機(jī)),就能運(yùn)行 Java 程序。真正實(shí)現(xiàn)了“Write once, run anywhere”。

3)豐富的類庫。全球約有 900 萬名 Java 開發(fā)人員,創(chuàng)造了一個(gè)充滿活力和積極進(jìn)取的 Java 社區(qū),開源類庫非常豐富。借助這些類庫可以讓開發(fā)者避免重復(fù)造輪子,不用去關(guān)注 Java 底層的開發(fā),只關(guān)注業(yè)務(wù)的實(shí)現(xiàn)。

4)廣泛使用。據(jù)估計(jì),全球范圍內(nèi)有超過 30 億部設(shè)備運(yùn)行 Java,超過其他任何一種語言。Java 被用于眾多全球知名的網(wǎng)站中,包括 eBay.com、Linkedin.com、Amazon.com 和 Facebook.com。這一點(diǎn)應(yīng)該是 Java 屹立不倒的深層次原因吧,大家都在用,才是真的強(qiáng)啊。

5)薪資可觀。很多企業(yè)都需要 Java 方面的人才,這是一個(gè)非常現(xiàn)實(shí)的原因,為了生計(jì)著想,學(xué)習(xí) Java 這個(gè)方向不會(huì)有錯(cuò)!

02、哪些 Java 知識(shí)不需要再學(xué)了

張無忌在學(xué)太極拳的時(shí)候,他爹的師父張三豐告誡他一定要把之前所學(xué)習(xí)的武功全部忘掉,忘得越多就會(huì)學(xué)得越快。

同樣的,自學(xué) Java 的時(shí)候一定要先知道哪些 Java 知識(shí)不需要再學(xué)了,畢竟技術(shù)的更新迭代就好像火箭一樣快,Java 的一些知識(shí)點(diǎn)早已經(jīng)過時(shí)了。如果不懂得斷舍離,那學(xué)起來就不免太痛苦了。

1)AWT 和 Swing

真不知道為什么,有些書籍還在介紹 AWT 和 Swing,這就好像不知道大清朝早已經(jīng)亡了幾百年一樣。已經(jīng) 9102 了,誰還會(huì)用 AWT 和 Swing 去開發(fā)桌面應(yīng)用呢?

就我所知,C++ 程序員會(huì)用 MFC,C# 程序員會(huì)用 Winform 和 WPF。甚至還可以用一種更時(shí)髦的技術(shù)(比如 Electron)把 Web 網(wǎng)頁裹一層華麗的外衣,變成可執(zhí)行文件。

2)Applet

作為網(wǎng)頁插件技術(shù),Applet 壓根就沒流行起來,就連曾經(jīng)的熱門 Flash 也要淘汰了。

3)XML

XML 還沒有被淘汰,應(yīng)用的地方還有不少。但是作為一種數(shù)據(jù)傳輸格式,它正在被 JSON 替代。

4)JDBC

我個(gè)人不建議再學(xué)習(xí)偏底層的 JDBC 了,尤其是對(duì)于時(shí)間寶貴的自學(xué)程序員來說。與其花這點(diǎn)時(shí)間,不如把精力投入到 MyBatis 的學(xué)習(xí)上。

5)Struts

Struts 是早年一個(gè)優(yōu)秀的 MVC 框架,單從技術(shù)的角度來看,還是蠻不錯(cuò)的。但是自從有了 SpringMVC 后,Struts 就被拍死在沙灘上了。

6)Hibernate

在我剛參加工作那會(huì)(2010 年的時(shí)候),持久層框架用的正是 Hibernate。但時(shí)過境遷,Hibernate 太重量級(jí)了,學(xué)習(xí)成本太高,取而代之的是輕量級(jí)的 MyBatis(支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射)。

7)JSP

說起來慚愧,我現(xiàn)在維護(hù)的一個(gè)項(xiàng)目,視圖層用的依然是 JSP。但如今流行的是“前后端分離”,JSP 就顯得不合時(shí)宜了。

03、學(xué)習(xí) Java 需要安裝的軟件

工欲善其事必先利其器,戰(zhàn)斗之前我們要先配備好武器。

1)JDK

JDK 是 Java Development ToolKit 的簡(jiǎn)稱,也就是 Java 開發(fā)工具包。JDK 是整個(gè) Java 的核心,包括 Java 運(yùn)行環(huán)境(Java Runtime Envirnment,簡(jiǎn)稱 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基礎(chǔ)類庫(比如 rt.jar)。

2)IDE

集成開發(fā)環(huán)境(IDE,Integrated Development Environment )是用于提供程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套。

在我初學(xué) Java 的時(shí)候,老師竟然告誡我們不要使用 IDE(當(dāng)時(shí)是 MyEclipse 風(fēng)靡的年代),而要使用文本編輯工具,比如說 Editplus、Nodepad++。

老師說的有一定的道理,比如說,在沒有代碼提醒的幫助下,我們能夠通過不停的手敲記住一些 Java 的常見名詞。但在我看來也就僅此而已。

沒有 IDE 的幫助,讓初學(xué)者對(duì)編程望而生畏,因?yàn)槟切┟~實(shí)在是太多了。我們班當(dāng)時(shí)很多同學(xué)就是因?yàn)橛X得太痛苦了,就放棄編程了。

我到現(xiàn)在也不太會(huì)敲 extends、implements(在 Eclipse 中復(fù)制出來的),不會(huì)敲又怎樣呢?有好的工具,我們就應(yīng)該利用,不應(yīng)該受苦

下面是最為受歡迎的 IDE 的榜單。

對(duì)于我來說,一直喜歡的是 Eclipse,這可能是一種情懷吧。

據(jù)說,喜歡 IntelliJ IDEA 的 Java 程序員越來越多了。

3)JAD

將源代碼轉(zhuǎn)換成二進(jìn)制執(zhí)行代碼的過程叫做“編譯”,一般指的是將 Wanger.java 編譯成 Wanger.class 字節(jié)碼文件;而將字節(jié)碼文件轉(zhuǎn)換成源代碼的過程叫做“反編譯”,比如將 Wanger.class 轉(zhuǎn)成 Wanger.java。

JAD 是一款老牌的、經(jīng)典的 Java 反編譯工具。更重要的是,JAD 能夠讓我們深入的了解 Java 代碼的工作機(jī)制。

比如說有這樣一段代碼:

String chenmo = "沉默"; String wanger = "王二";System.out.println(chenmo + wanger);

它的“廬山真面目”是下面這樣子的。

String chenmo = "\u6C89\u9ED8"; // 沉默 String wanger = "\u738B\u4E8C"; // 王二 System.out.println((new StringBuilder(String.valueOf(chenmo))).append(wanger).toString());

4)Maven

Maven 是一個(gè)項(xiàng)目管理和自動(dòng)化構(gòu)建工具,基于項(xiàng)目對(duì)象模型(POM)的概念,可以管理項(xiàng)目的構(gòu)建、報(bào)告以及文檔。作為 Apache 組織中的一個(gè)頗為成功的開源項(xiàng)目,Maven 主要服務(wù)于基于 Java 的項(xiàng)目構(gòu)建、依賴管理和項(xiàng)目信息管理。

04、推薦一些優(yōu)質(zhì)的 Java 學(xué)習(xí)網(wǎng)站

經(jīng)常有一些讀者問我:“二哥,學(xué)習(xí) Java 應(yīng)該關(guān)注哪些網(wǎng)站?”,我之前的態(tài)度一直是上知乎、上搜索引擎搜一下不就知道了。但讀者對(duì)我這個(gè)態(tài)度很不滿意,他們說,“我在問你,又不是問知乎,問搜索引擎。”你還別說,讀者說得有道理。

于是我想,那就推薦一些吧。先說我心目中的前三名,但不局限于 Java 學(xué)習(xí)者。

1)Google

啥都不說了,說多了都是淚,可氣的是 Robin 李的搜索引擎實(shí)在是不爭(zhēng)氣。說句良心話,Google 的搜索結(jié)果比前者的質(zhì)量高出一百(零一)倍。

Google 也算是網(wǎng)站?必須算啊。只要你想要學(xué)習(xí),它會(huì)給你所有。

2)Stack Overflow

Stack Overflow 可以說是解決問題的殺手锏。下面這些問題是不是都很常見?

如果英語能力不太好的話,可以借助一下 Chrome 瀏覽器的自動(dòng)翻譯功能。

3)GitHub

GitHub 是一個(gè)擁有數(shù)十億行代碼的網(wǎng)站,每天有數(shù)百萬開發(fā)者聚集在一起,研究開源軟件中存在的問題。

對(duì)于普通的程序員來說,如果不想重復(fù)造輪子,就必須要站在巨人的肩膀上,那么巨人是誰呢?就是 GitHub。那些牛逼的開源軟件庫,99% 的情況下會(huì)在 GitHub 上找到它。

對(duì)于成功的程序員來說,如果想要被別人膜拜,最好能在 GitHub 上貢獻(xiàn)一個(gè)開源庫,如果星標(biāo)超過 1W,那可是相當(dāng)?shù)呐1?#xff0c;在業(yè)界應(yīng)該算是響當(dāng)當(dāng)?shù)娜宋铩?/p>

然后,我再推薦一些 Java 程序員必須要關(guān)注的網(wǎng)站。

4)IBM Developer

IBM developerWorks 提供了中文版,里面的文章都屬于非常高質(zhì)量的。

5)Java SE 技術(shù)文檔,https://docs.oracle.com/javase/8/docs/api/

即使是 Java 編程的大牛 , 也離不開這份文檔。中文版的 API 可以參照:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

6)Java World

這個(gè)網(wǎng)站包含了大量的 Java 教程 , 涉及各種各樣的話題。其中很多文章都寫的很好 , 并且有圖片、插圖進(jìn)行說明。它可以被用來當(dāng)作深度學(xué)習(xí)的教科書。英文能力有限的話,可以使用谷歌翻譯。

7)Program Creek

Program Creek 在維護(hù)方面做的很好 , 文章讀起來也比較有趣。在這里 , 你可以找到其他任何網(wǎng)站都不曾涉及到的話題 , 而且?guī)缀趺科恼露及恋牟鍒D或者示例代碼。

8)LeetCode

備戰(zhàn)技術(shù)面試?力扣提供了海量技術(shù)面試資源,幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。

刷題的話,還有一個(gè)牛客網(wǎng)值得推薦,里面各個(gè)公司的面試題和面經(jīng)分享,找工作前認(rèn)真刷一刷,一定會(huì)大有所獲。這里強(qiáng)調(diào)一下刷題的重要性:

  • 可以讓思維保持活躍
  • 強(qiáng)化對(duì)基本知識(shí)的理解
  • 要想找到工作,就要過面試,不刷題怎么能行

9)CSDN,https://www.csdn.net/

網(wǎng)站很多,重要的是挑幾個(gè)自己喜歡的關(guān)注,持續(xù)不斷地學(xué)習(xí),就能夠取得顯著的進(jìn)步。

05、推薦一些優(yōu)質(zhì)的 Java 書籍

不知不覺,我已經(jīng)接觸 Java 11 年了——從 2008 年北京奧運(yùn)會(huì)那年開始,到現(xiàn)在;未來還會(huì)更久。

這期間我讀了不少 Java 方面的書籍,紙質(zhì)版的少說有三十來本吧,更何況還有不少的電子書。萬事都有好壞,書也一樣。有的是精神糧食,有的純粹是浪費(fèi)時(shí)間。

這里就分享一些我精挑細(xì)選后的優(yōu)質(zhì)書籍,希望能幫大家少走點(diǎn)彎路。

1)《Java 編程思想》

這本書在豆瓣的評(píng)分高達(dá) 9.1 分,但我總覺得有點(diǎn)虛高。

記得剛上大學(xué)那會(huì),就在某寶上買了一本影印版的《Java 編程思想》,但由于初學(xué) Java,對(duì)編程極度缺乏信心,導(dǎo)致看這本書有一種看天書的感覺。后來,去蘇州參加工作的時(shí)候把它作為最寶貴的紀(jì)念品帶了過去。

2014 年回洛陽的時(shí)候把它送給了一位關(guān)系還不錯(cuò)的同事,權(quán)當(dāng)是分別的禮物吧。2016 年的時(shí)候,我又重新買了一本,希望自己能夠夯實(shí)一下基礎(chǔ)。但事與愿違,它被我束之高閣了,讀起來無比的枯燥。2018 年的時(shí)候,我重新捧起它讀了一遍,總覺得有一種莫名的負(fù)罪感。

《Java 編程思想》是個(gè)大部頭,足足 880 頁,文字更是密密麻麻。我不建議大家一個(gè)字一個(gè)字的讀,知曉其中的精華就可以了。如果你覺得這本書讀起來很痛苦,不妨來讀一讀我加工潤(rùn)色后分享博文,足足 25 篇,每一篇都很精彩。

先來通過思維導(dǎo)圖看一下這 25 篇 Java 博文涉及到的知識(shí)點(diǎn)。

下面是這 25 篇 Java 技術(shù)博文對(duì)應(yīng)的鏈接。

Java 的核心目的和并發(fā)編程
Java:程序不過是幾行代碼的集合
什么是面向?qū)ο缶幊?#xff08;OOP)?
如何理解 Java 中的繼承?
吃人的那些 Java 名詞:對(duì)象、引用、堆、棧
Java 的操作符——“=”號(hào)
害死人的自動(dòng)遞增,不償命的自動(dòng)遞減
Java 流程控制語句
Java是通過什么機(jī)制來確保對(duì)象初始化呢?
Java 訪問權(quán)限控制:public、private、protected
Java代碼復(fù)用的三種常用方式:繼承、組合和代理
Java:多態(tài)乃幸福本源
Java 抽象類和接口,看這一篇就夠了
Java內(nèi)部類
Java String,看這篇就夠了
Java 數(shù)組,看這一篇就夠了
Java 集合類入門篇
HashMap,難的不在Map,而在Hash
Java泛型的重要目的:別讓貓別站在狗隊(duì)里
Java異常處理:給程序罩一層保險(xiǎn)
如果有人再問你 Java 的反射,把這篇文章扔給他
Java枚舉:小小enum,優(yōu)雅而干凈
Java注解(Annotation):請(qǐng)不要小看我!
Java I/O 入門篇
Java:并發(fā)不易,先學(xué)會(huì)用

《Java編程思想》無疑一直都會(huì)被大力推薦,可是第四版的出版時(shí)間竟然早在 2007 年,全書大部分的代碼是基于 JDK 1.5 完成的。如今什么年代了?

告訴你一個(gè)好消息,《Java編程思想》的作者 Bruce Eckel 在 2017 年的時(shí)候發(fā)布了第五版,沒想到吧?為什么在網(wǎng)上都看不到這本書的消息呢?因?yàn)楦拿?#xff0c;而且只有電子版。

這本書的所有源代碼已經(jīng)開源在 GitHub,傳送門:

https://github.com/BruceEckel/OnJava8-Examples

如果英語水平像我一樣菜,看英文版比較費(fèi)勁,可以在 GitHub 上查看大嬸們的譯本,傳送門:

https://github.com/LingCoder/OnJava8

如果英語水平還不錯(cuò),可以自行購買電子版的《On Java 8》,雖然比較貴。

2)《Java 核心技術(shù)卷一》

《Java核心技術(shù)卷一》是唯一可以和《Java編程思》媲美的一本 Java 入門書。單從技術(shù)的角度來看,前者更好一些。但上升到思想層面嘛,自然后者更好,兩者的偏重點(diǎn)不同。

思想不會(huì)變,所以《Java編程思想》還停留在第 4 版(2007 年);而技術(shù)是要更新迭代的,所以《Java核心技術(shù)卷一》來到了第十版(2016 年)。

我們來看一下《Java核心技術(shù)卷一》第十版的大綱。

前九章:包括 “Java 程序設(shè)計(jì)概述”、“Java 程序設(shè)計(jì)環(huán)境”、“Java 的基本程序設(shè)計(jì)結(jié)構(gòu)”、“對(duì)象與類”、“繼承”、“接口”、“l(fā)ambda 表達(dá)式與內(nèi)部類”、“異常”、“斷言和日志”、“泛型程序設(shè)計(jì)”、“集合”。這九章講述的是 Java 基礎(chǔ)知識(shí)點(diǎn),是 Java 程序員必須要掌握的內(nèi)容,所以必看。

第十到第十二章:講的是 AWT 和 Swing,個(gè)人感覺這部分內(nèi)容屬于不需要再學(xué)的 Java 知識(shí)點(diǎn)。當(dāng)然了,窗口編程涉及到的“事件驅(qū)動(dòng)-監(jiān)聽-方法回調(diào)”的機(jī)制蠻重要的,需要掌握,但和 AWT 和 Swing 的關(guān)聯(lián)度不大。就好像,我們?nèi)″X直接去招商銀行,沒必要把招商銀行的錢轉(zhuǎn)到工商銀行再取出來。

第十三章:講的是應(yīng)用部署和 Applet,顯然 Applet 也沒必要學(xué)了。出版社沒有把這部分內(nèi)容刪掉,純粹是為了讓這本書變得更笨重(定價(jià)就高了)。

第十四章:并發(fā)編程。這也是 Java 學(xué)習(xí)過程中最難的一塊之一,另外一難是 Java 虛擬機(jī)。但這是初級(jí)程序員邁向高手的必經(jīng)之路。

整體上來講,《Java核心技術(shù)卷一》非常值得一讀,廣度和深度都恰到好處。強(qiáng)烈推薦。

我知道,有些同學(xué)因?yàn)楣ぷ鲿r(shí)間的原因,一直沒有時(shí)間讀書。像《Java核心技術(shù)卷一》這樣厚得像特朗普的臉皮一樣的書,更是沒有時(shí)間讀了。不過,不要擔(dān)心,二哥替大家解決了這個(gè)煩惱,我用了一個(gè)月的時(shí)間把這本書完整地讀了一遍,并寫了 9 篇高質(zhì)量且通俗易懂的文章,供大家作為參考。

先來通過思維導(dǎo)圖看一下這 9 篇 Java 核心技術(shù)博文涉及到的內(nèi)容。

下面是這 9 篇 Java 核心技術(shù)博文對(duì)應(yīng)的鏈接。

Java面試官:兄弟,你確定double精度比float低嗎?

請(qǐng)用面向?qū)ο蟮乃枷?#xff0c;談一談這次面試的過程

再談 Java 的繼承和超類 Object

Java:接口和抽象類,傻傻分不清楚?

Java生成二維碼分享海報(bào)

Java:優(yōu)雅地處理異常真是一門學(xué)問啊!

教妹學(xué) Java:晦澀難懂的泛型

教妹學(xué)Java:大有可為的集合

教妹學(xué) Java:難以駕馭的多線程

3)《Head First Java》

在我遇到《Head First Java》之前,如果你要我推薦 Java 技術(shù)書,我會(huì)毫不猶豫地推薦《Java 編程思想》和《Java 核心技術(shù)卷》,因?yàn)榇蠹叶颊f好嘛,我只能“同流合污”了(強(qiáng)顏歡笑);但換成是現(xiàn)在的話,我會(huì)優(yōu)先推薦《Head First Java》。

盡管《Head First Java》也非常的厚,至少比我的臉皮后,但趣味性就要甩前面兩本好幾條街了。這年頭,大家都沒時(shí)間讀枯燥的技術(shù)書,尤其是厚的。上一張圖大家感受一下《Head First Java》的調(diào)皮吧。

就沖著這張圖,我覺得《Head First Java》的作者就足夠的大膽。作者挑選的圖片可以說張張經(jīng)典,真正實(shí)現(xiàn)了“圖文并茂”的需求,搞得你感覺有點(diǎn)不好意思,仿佛不是在讀一本 Java 技術(shù)書,而是在讀一本《知音》。

不止是圖片,還有游戲、拼圖、解謎題以及意想不到的內(nèi)容。真的是一點(diǎn)都不“正經(jīng)”,正因?yàn)槿绱?#xff0c;閱讀起來才感覺興趣盎然。

第一章主要介紹了 Java 的工作原理、發(fā)展簡(jiǎn)史、程序結(jié)構(gòu)。

第二章主要介紹了 Java 的面向?qū)ο?#xff0c;包括繼承、覆蓋等內(nèi)容。

什么是面向?qū)ο缶幊?#xff08;OOP)?

第三章主要介紹了 Java 的變量。關(guān)鍵點(diǎn):引用變量存儲(chǔ)的是對(duì)象的地址(儲(chǔ)存方式)、數(shù)組也是對(duì)象。

為什么要將局部變量的作用域最小化?

第四章主要介紹了 Java 的方法。關(guān)鍵點(diǎn):實(shí)參和形參、值傳遞和引用傳遞、== 和 equals()。

Java到底是值傳遞還是引用傳遞?

如何比較 Java 的字符串?

第五章主要介紹了程序設(shè)計(jì)與實(shí)現(xiàn)的步驟。

第六章主要介紹了 Java 的 API。關(guān)鍵點(diǎn):ArrayList。

第七章主要介紹了繼承和多態(tài)。關(guān)鍵點(diǎn):覆蓋和重載。

第八章主要介紹了接口和抽象類。關(guān)鍵點(diǎn):超類 Object。

再談 Java 的繼承和超類 Object

第九章主要介紹了構(gòu)造器與垃圾收集器。關(guān)鍵點(diǎn):對(duì)象存儲(chǔ)在堆中,對(duì)象引用在棧中;當(dāng)對(duì)象失去最后一個(gè)引用變量時(shí),它會(huì)被回收。

第十章主要介紹了靜態(tài)類、靜態(tài)方法、靜態(tài)變量。關(guān)鍵點(diǎn):final、常量、數(shù)字格式化、日期表示法。

第十一章主要介紹了異常處理。

第十二章和第十三章,主要介紹了 GUI 和 Swing。關(guān)鍵點(diǎn):事件處理機(jī)制。

第十四章主要介紹了序列化和文件輸入/輸出。關(guān)鍵點(diǎn):Serializable接口。

Java Serializable:明明就一個(gè)空的接口嘛

第十五章主要介紹了網(wǎng)絡(luò) Socket 和多線程。

Java Socket:飛鴿傳書的網(wǎng)絡(luò)套接字

Java 網(wǎng)絡(luò)編程:必知必會(huì)的 URL 和 URLConnection

第十六章主要介紹了集合和泛型。

第十七章主要介紹了程序的打包和發(fā)布。

第十八章主要介紹了遠(yuǎn)程服務(wù)調(diào)用。

4)《Effective Java》

《Effective Java》除了翻譯讓眾多 Java 程序員詬病之外,再?zèng)]有任何缺點(diǎn)了(有讀者戲稱:“這本書為翻譯們作出了杰出的表率”)。其目標(biāo)是幫助 Java 程序員更加有效地使用 Java 編程語言及其基本類庫,主要涉及到 java.lang、java.util、 java.io 包下面的類。

《Effective Java》第三版一共包含了 90 條極具實(shí)用價(jià)值的經(jīng)驗(yàn)規(guī)則,每條規(guī)則都值得 Java 程序員在實(shí)戰(zhàn)中去參照。這本書不需要按部就班地從頭到尾讀,可以隨意挑選任意小節(jié)進(jìn)行閱讀,因?yàn)槊織l規(guī)則相對(duì)都是獨(dú)立的,盡管它們之間會(huì)交叉引用,但并不妨礙我們隨心所欲地閱讀。

作者 Josh Bloch 非常的牛逼,曾是 Google 的首席 Java 架構(gòu)師,《Java開發(fā)者雜志》將他列為世界上最頂尖的四十名軟件人物之一。Java 之父詹姆斯·高斯林對(duì)《Effective Java》的評(píng)價(jià)也非常的高。

這里有一份第三版的中文在線翻譯文檔,大家可以參照一下。

https://github.com/sjsdfg/effective-java-3rd-chinese/tree/master/docs/notes

我在讀這本書的時(shí)候,曾寫過兩篇文章,大家也可以閱讀一下。

為什么要將局部變量的作用域最小化?
面試官:兄弟,說說基本類型和包裝類型的區(qū)別吧

5)《Java網(wǎng)絡(luò)編程》

《Java網(wǎng)絡(luò)編程》全面介紹了如何使用 Java 開發(fā)網(wǎng)絡(luò)程序。網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))上的程序,這些設(shè)備可以通過網(wǎng)絡(luò)連接起來。這也是 Java 基礎(chǔ)學(xué)習(xí)完后必須要學(xué)習(xí)的一大塊內(nèi)容,包括:Internet 底層協(xié)議(TCP/IP 和 UDP/IP)、網(wǎng)絡(luò)輸入和輸出、DNS 交互、定位、識(shí)別和下載網(wǎng)絡(luò)資源、HTTP 協(xié)議(REST、HTTP 頭部和 Cookie)、Socket 通信等等。

這本書的整體評(píng)價(jià)并不算高,吐槽的反而更多。但是,對(duì)于學(xué)習(xí) Java 網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí)非常的有用。

6)《Java 并發(fā)編程實(shí)戰(zhàn)》

《Java并發(fā)編程實(shí)戰(zhàn)》深入淺出地介紹了 Java 線程和并發(fā)編程,是一本還算不錯(cuò)的 Java 并發(fā)編程參考手冊(cè)。本書從并發(fā)和線程安全性的基本概念出發(fā),介紹了如何使用類庫來提供基本的并發(fā)方案,包括如何利用線程來提高并發(fā)應(yīng)用程序的吞吐量、如何識(shí)別可并發(fā)執(zhí)行的任務(wù)、如何提高單線程子系統(tǒng)的響應(yīng)性、如何確保并發(fā)程序執(zhí)行預(yù)期的任務(wù),如何提高并發(fā)代碼的性能和可伸縮性等等內(nèi)容。

但我必須要說的是,《Java并發(fā)編程實(shí)戰(zhàn)》這本書并沒有擺脫翻譯枯燥的老毛病,讀起來很需要耐住性子,不然就很難把這本書吃透。當(dāng)然了,并發(fā)編程本身就很難,大家要做好心理準(zhǔn)備。

7)《深入理解Java虛擬機(jī)》

《深入理解 Java 虛擬機(jī):JVM 高級(jí)特性與最佳實(shí)踐(第 2 版)》是唯一一本我們國內(nèi)程序員寫的經(jīng)典書,可以媲美《Java 編程思想》。

這本書牛逼到什么程度,幾乎所有寫 Java 虛擬機(jī)方面的文章,沒有一個(gè)不在文章最后注明:本文參考字周志明老師的《深入理解 Java 虛擬機(jī)》。假如這篇文章最后沒有注明的話,那保不準(zhǔn)是不尊重版權(quán)。

第 1 版兩年內(nèi)印刷近 10 次,好評(píng)(五星)如潮,是整個(gè) Java 圖書領(lǐng)域公認(rèn)的經(jīng)典著作和暢銷書。

第 2 版共分為 5 大部分,圍繞內(nèi)存管理、執(zhí)行子系統(tǒng)、程序編譯與優(yōu)化、高效并發(fā)等核心主題對(duì) JVM 進(jìn)行了全面深入的分析,深刻揭示了 JVM 的工作原理。

第一部分主要介紹了 Java 的技術(shù)體系、Java 和 JVM 的發(fā)展歷程。

第二部分主要介紹了 JVM 的自動(dòng)內(nèi)存管理,包括虛擬機(jī)的內(nèi)存區(qū)域劃分原理,內(nèi)存溢出產(chǎn)生的原因、常見的垃圾收集算法、垃圾收集器的工作原理等等。

第三部分主要介紹了類文件結(jié)構(gòu)、虛擬機(jī)類加載機(jī)制、虛擬機(jī)字節(jié)碼執(zhí)行引擎。

第四部分主要介紹了程序的編譯和代碼的優(yōu)化,闡述了泛型、自動(dòng)裝箱拆箱、條件編譯等語法糖的原理;還有 HotSpot 的即時(shí)編譯器。

第五部分主要介紹了 Java 實(shí)現(xiàn)高效并發(fā)的原理,包括 JVM 內(nèi)存模型等。

作者周志明更成為了廣大 Java 程序員心目中的大神級(jí)人物,厲害厲害了!有讀者曾這樣感嘆道:“國內(nèi)程序員很難再寫出這么經(jīng)典的書了!”

如果大家想要成為一名優(yōu)秀的 Java 程序員,本書不得不讀啊!并且是細(xì)細(xì)品味的那種。

8)《Java性能權(quán)威指南》

市面上專注于 Java 性能的書不多,《Java性能權(quán)威指南》算是一本很不錯(cuò)的。通過閱讀本書,我們可以運(yùn)用 4 個(gè)基本原則最大程度地提升性能測(cè)試的效果、使用 JDK 自帶的工具收集程序的性能數(shù)據(jù)、理解 JIT(即時(shí)編譯器)編譯器的優(yōu)缺點(diǎn)、調(diào)優(yōu) JVM 垃圾收集器、最大程度優(yōu)化多線程等等。

9)《代碼整潔之道》

我可以這么肯定地說:《代碼整潔之道》值得所有的程序員讀一讀。軟件的質(zhì)量,不僅依賴于架構(gòu),更與代碼質(zhì)量息息相關(guān)。而代碼的質(zhì)量與其整潔度成正比關(guān)系,越整潔的代碼,其質(zhì)量毫無疑問的就會(huì)越高。由于本書中的例子是由 Java 實(shí)現(xiàn)的,因此 Java 程序員在讀這本書的時(shí)候有著天然的優(yōu)勢(shì)。

如何寫出整潔的代碼呢?Keep It Simple Stupid:代碼簡(jiǎn)單直接,不僅能夠提高代碼的效率,還能夠讓閱讀代碼的人賞心悅目。

本書的第一章,對(duì)整潔代碼下了一個(gè)定義,每個(gè)程序員都應(yīng)該銘記在心。

1、整潔的代碼力求專注,每個(gè)方法、每個(gè)類都應(yīng)該全神貫注于一件事;命名更要給人一種“顧名思義”的感覺。
2、整潔的代碼簡(jiǎn)單直接,從不隱藏設(shè)計(jì)者的意圖。
3、整潔的代碼應(yīng)當(dāng)有單元測(cè)試。
4、整潔的代碼拒絕重復(fù),其表達(dá)力直擊人的心靈。

10)《設(shè)計(jì)模式之禪》

《設(shè)計(jì)模式之禪(第 2 版)》是設(shè)計(jì)模式領(lǐng)域公認(rèn)的 3 本經(jīng)典著作之一,也是我們國內(nèi)程序員寫的一本書,趣味化十足,讀起來也非常容易理解。這本書值得所有的程序員讀一讀,但 Java 程序員讀起來更容易上手,因?yàn)樵创a是 Java 完成的。作者名叫秦小波,和我最喜歡的作家王小波同名。

本書可以分為五個(gè)部分:

第一部分(第 1~6 章),包含有單一職責(zé)原則、里氏替換原則、依賴倒置原則、接口隔離原則、迪米特法則、開閉原則等內(nèi)容,對(duì)面向?qū)ο蟪绦騿T設(shè)計(jì)的 6 大原則進(jìn)行了深刻解讀。

第二部分(第 7~29 章)通過大量生動(dòng)的案例講解了 23 種最常用的設(shè)計(jì)模式。包含單例模式、工廠方法模式、抽象工廠模式、模板方法模式、建造者模式、代理模式、原型模式、中介者模式、命令模式、責(zé)任鏈模式、裝飾模式、策略模式、適配器模式、迭代器模式、組合模式、觀察者模式、門面模式、備忘錄模式、訪問者模式、狀態(tài)模式、解釋器模式、享元模式、橋梁模式。

第三部分(第 30~33 章)對(duì)同類型和相關(guān)聯(lián)的模式進(jìn)行了比較,旨在說明它們之間的差別。

第四部分(第 34~36 章)探討了如何在實(shí)際開發(fā)中將各種設(shè)計(jì)模式混合起來使用的可能性,以發(fā)揮設(shè)計(jì)模式的最大功效。

第五部分(第 37~38 章)主要講解了 5 種新的設(shè)計(jì)模式的原理、意圖和最佳實(shí)踐。

大家都聽說過,學(xué)習(xí)設(shè)計(jì)模式非常的重要,那么為什么這么重要呢,設(shè)計(jì)模式到底是什么?打個(gè)比喻學(xué)編程就像學(xué)武功一樣。

武功要練得很牛逼,有兩樣?xùn)|西不能丟。第一,是內(nèi)功;第二,是武功秘籍。內(nèi)功對(duì)應(yīng)到編程就是我們編程基礎(chǔ)能力,那編程的設(shè)計(jì)模式就可以想象成武術(shù)中的武功秘籍。

設(shè)計(jì)模式就是根據(jù)不同類型場(chǎng)景,設(shè)計(jì)優(yōu)雅的(編碼)解決方案。學(xué)好設(shè)計(jì)模式有很多好處,比如,容易看懂經(jīng)典代碼中的邏輯(很多優(yōu)秀的開源框架大量使用了設(shè)計(jì)模式);應(yīng)對(duì)面試時(shí)對(duì)答如流(設(shè)計(jì)模是面試重點(diǎn));可以編寫出優(yōu)雅的解決方案(或者代碼)。

11)《Java開發(fā)手冊(cè)》

《Java開發(fā)手冊(cè)》是每個(gè) Java 程序員都值得擁有的一本參考指南。該手冊(cè)涵蓋了編程規(guī)約、異常日志、單元測(cè)試、安全規(guī)約、MySQL 數(shù)據(jù)庫、工程結(jié)構(gòu)、設(shè)計(jì)規(guī)約燈 7 個(gè)部分,參考價(jià)值極大。

《Java 開發(fā)手冊(cè)》作為阿里官方的 Java 代碼規(guī)范標(biāo)準(zhǔn),是行業(yè)內(nèi)領(lǐng)先的開發(fā)規(guī)范文檔。如果能夠認(rèn)真踐行該手冊(cè)中提到的規(guī)約,絕壁能夠幫助 Java 程序員養(yǎng)成良好的編程習(xí)慣,并且提高代碼的質(zhì)量和降低項(xiàng)目維護(hù)的難度。

據(jù)說,這本手冊(cè)在阿里內(nèi)部打磨了很久很久才對(duì)外開放的,所以傾注了很多大佬們的心血。況且,阿里作為一個(gè)大廠,拿出來一份有瑕疵的手冊(cè),多少會(huì)丟臉,所以這本手冊(cè)絕對(duì)值得讀一讀。

本手冊(cè)的作者孤盡曾說:

代碼規(guī)范這事情,它是一個(gè)吃力不討好,短期沒結(jié)果,費(fèi)心又費(fèi)力的事情。唯有自己內(nèi)心的技術(shù)情懷。

06、推薦一些優(yōu)質(zhì)的 Java 學(xué)習(xí)視頻

我知道,有些同學(xué)更喜歡看視頻教學(xué),那么我也為大家精心準(zhǔn)備了一些。這些視頻我已經(jīng)分門別類了,大家可以按需下載。

這些視頻分為兩大類,Java 基礎(chǔ)和 Java 高級(jí),先來看一下清單。

Java 基礎(chǔ)視頻名稱口令
Java 基礎(chǔ)語法javaboy4096
Java 面向?qū)ο?/td>javaboy6148
深入面向?qū)ο蠛蛿?shù)組javaboy8200
Java 常用類詳解javaboy4105
Java 集合與數(shù)據(jù)結(jié)構(gòu)javaboy2062
Java 數(shù)據(jù)結(jié)構(gòu)和算法javaboy6184
Java IO 流全解析javaboy8209
Java 網(wǎng)絡(luò)編程javaboy6166
Java 異常機(jī)制解析javaboy6157
深入理解 Java 多線程javaboy4114
手動(dòng)開發(fā)一個(gè) Web 服務(wù)器javaboy2071
獨(dú)立開發(fā) SORM 框架javaboy8227
深入理解 Java 注解+反射javaboy8218
Java 23 種設(shè)計(jì)模式javaboy4123
學(xué)會(huì) Java 正則表達(dá)式javaboy6175
JDBC 詳解javaboy2080
深入理解 Java 虛擬機(jī)javaboy2089
Java 解析XML文件javaboy8236
IntelliJIDEA 視頻教程javaboy4285
Java 編程規(guī)范javaboy4222
Java 高級(jí)視頻名稱口令
Java 高并發(fā)秒殺方案javaboy8299
高并發(fā)編程與線程池javaboy2170
Java 并發(fā)編程與高并發(fā)實(shí)戰(zhàn)javaboy6256
Activiti 工作流實(shí)戰(zhàn)解析javaboy4204
ActiveMQ 消息中間詳解javaboy8326
Dubbo 詳解javaboy8335
Linux 快速入門javaboy2161
Linux 基本操作javaboy6328
Linux 基本命令javaboy6409
Maven 詳解javaboy8308
Maven 實(shí)戰(zhàn)視頻javaboy8443
Git 應(yīng)用詳解javaboy4213
Gradle 從入門到精通javaboy6391
Svn 入門教程javaboy6265
系統(tǒng)優(yōu)化與 JVM 調(diào)優(yōu)javaboy8317
JVM 虛擬機(jī)優(yōu)化javaboy2224
AIO、BIO、NIO 詳解javaboy6274
Netty 高級(jí)視頻教程javaboy2179
單點(diǎn)登錄視頻教程javaboy4231
Redis緩存詳解javaboy6319
Redis全解析javaboy4240
Redis 內(nèi)存數(shù)據(jù)javaboy4402
Nginx 視頻教程javaboy4267
VSFTPD+Nginx 視頻教程javaboy6292
Nginx 和高并發(fā)javaboy2323
MyBatis 視頻教程javaboy2197
Hibernate4 視頻教程javaboy8353
Spring4 視頻教程javaboy8344
SpringMVC 視頻教程javaboy4249
MySQL 基礎(chǔ)javaboy2107
MySQL 高級(jí)教程javaboy2305
MySQL 優(yōu)化javaboy6211
SSM 框架整合視頻教程javaboy6301
Jfinal 視頻教程javaboy4258
Shiro 視頻教程javaboy6310
Solr 視頻教程javaboy2215
Struts2 視頻教程javaboy8362
Zookeeper 詳解視頻javaboy8371
JUC 視頻教程javaboy6400
Java 郵件開發(fā)教程javaboy8452
自己 DIY 一個(gè) Tomcatjavaboy4339
架構(gòu)師面試攻略(文檔)javaboy2233
架構(gòu)師面試攻略(視頻)javaboy8380

學(xué)完這些視頻,可以再把之前推薦的書籍結(jié)合起來讀一讀,一定會(huì)大有所獲!要不,你來揍我😜!

07、推薦一些優(yōu)質(zhì)的 Java 實(shí)戰(zhàn)項(xiàng)目

聽過王陽明先生倡導(dǎo)的“知行合一”吧?我們學(xué)習(xí),除了關(guān)注網(wǎng)站、博客、書籍、視頻,最重要的還是要實(shí)戰(zhàn),總不能紙上談兵。那么優(yōu)質(zhì)的 Java 實(shí)戰(zhàn)項(xiàng)目就顯得至關(guān)重要了。這里不推薦太多,只推薦兩個(gè)。

1、mall :mall 項(xiàng)目是一套電商系統(tǒng),包括前臺(tái)商城系統(tǒng)及后臺(tái)管理系統(tǒng),基于 SpringBoot+MyBatis 實(shí)現(xiàn)。 前臺(tái)商城系統(tǒng)包含首頁門戶、商品推薦、商品搜索、商品展示、購物車、訂單流程、會(huì)員中心、客戶服務(wù)、幫助中心等模塊。 后臺(tái)管理系統(tǒng)包含商品管理、訂單管理、會(huì)員管理、促銷管理、運(yùn)營(yíng)管理、內(nèi)容管理、統(tǒng)計(jì)報(bào)表、財(cái)務(wù)管理、權(quán)限管理、設(shè)置等模塊。

作者我們線上聊過,人很親切。他的 GitHub 地址:https://github.com/macrozheng/mall

2、vhr :微人事是一個(gè)前后端分離的人力資源管理系統(tǒng),項(xiàng)目采用SpringBoot+Vue開發(fā)。

這是我的好朋友「江南一點(diǎn)雨」自己維護(hù)的一個(gè)項(xiàng)目,目標(biāo)星標(biāo) 12.3k。

GitHub 地址:https://github.com/lenve/vhr

GitHub 上還有很多不錯(cuò)的開源項(xiàng)目,但活不在多,而在精。把這兩個(gè)實(shí)戰(zhàn)項(xiàng)目搞透徹,自學(xué)的道路上就已經(jīng)成功了 70%。

08、推薦一份不錯(cuò)的 Java 面試題

自學(xué)了這么長(zhǎng)時(shí)間,我相信大家已經(jīng)躍躍欲試了,能不能一舉拿下 offer,就需要面試題來測(cè)試一下了。

我們是 Java 程序員,那么有沒有掌握整個(gè) Java 知識(shí)體系就顯得尤為重要了。很多小伙伴苦于沒有合適的資料來回顧整個(gè) Java 知識(shí)體系,或者不知道從哪開始復(fù)習(xí)。

我找「純潔的微笑」要了一份資料,這份不論是從整個(gè) Java 知識(shí)體系,還是從面試的角度來看,都是一份含技術(shù)量很高的資料。

至于出處,好像是一份美團(tuán)的大佬整理的,這里表示感謝。我截了幾張圖,大家感受一下。

經(jīng)過這一輪面試題的洗禮,我相信大家在面試官前面就不會(huì)再戰(zhàn)戰(zhàn)兢兢了,而是自信滿滿。

09、技術(shù)沒有終點(diǎn)

我記得,讀者“在你的世界各地”向我提問的時(shí)候是 1 個(gè)月前,不過,我沒有讓他失望,終于把這份 20000+ 字的指南整理完畢,其中花費(fèi)了我大量的時(shí)間和精力,但我總覺得這份付出是值得的。我也相信,大家按照我制定的這份學(xué)習(xí)路線學(xué)習(xí)之后,肯定能夠在最短的時(shí)間內(nèi)找到工作!那么現(xiàn)在,我為你送上最真誠的祝福,加油!

當(dāng)然了,技術(shù)這條路是沒有終點(diǎn)的,即便是找到了工作,我們依然需要奮力前行,做最好的自己!

05、肯定會(huì)有很多讀者問我以上推薦的書籍、視頻、面試資料怎么獲取,那我干脆全部分享出來:

你可以在我的原創(chuàng)微信公眾號(hào)『沉默王二』回復(fù)「Java」獲取書單電子書;回復(fù)「免費(fèi)視頻」獲取 500G 視頻資料,超高清的,并且是分門別類的,你按照口令清單想看哪個(gè)看哪個(gè);回復(fù)「面試」獲取價(jià)值連城的面試資料。

有收獲?希望老鐵們來個(gè)三連擊,給更多的同學(xué)看到這篇文章

1、老鐵們,關(guān)注我的原創(chuàng)微信公眾號(hào)「沉默王二」,專注于有趣有益的程序人生,保證你看完有所收獲,不信你打我。

2、給二哥點(diǎn)個(gè)贊唄,可以讓更多的人看到這篇文章,順便激勵(lì)下我,嘻嘻。

作者info
作者:沉默王二,CSDN 2019 年度博客之星,《Web全棧開發(fā)進(jìn)階之路》作者
原創(chuàng)公眾號(hào):『沉默王二』,已寫了 250 多篇文章,專注于有趣的 Java 技術(shù)和有益的程序人生,期待你的關(guān)注。
轉(zhuǎn)載說明:務(wù)必注明來源(注明:來源于公眾號(hào):沉默王二, 作者:沉默王二)

總結(jié)

以上是生活随笔為你收集整理的【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。