Java入門學習需要看哪些書籍?

前言:技術(shù)書閱讀方法論

一.速讀一遍(最好在1~2天內(nèi)完成)

人的大腦記憶力有限,在一天內(nèi)快速看完一本書會在大腦里留下深刻印象,對于之后復習以及總結(jié)都會有特別好的作用。

對于每一章的知識,先閱讀標題,弄懂大概講的是什么主題,再去快速看一遍,不懂也沒有關(guān)系,但是一定要在不懂的地方做個記號,什么記號無所謂,但是要讓自己后面再看的時候有個提醒的作用,看看第二次看有沒有懂了些。

二.精讀一遍(在2周內(nèi)看完)

有了前面速讀的感覺,第二次看會有慢慢深刻了思想和意識的作用,具體為什么不要問我,去問30年后的神經(jīng)大腦專家,現(xiàn)在人類可能還沒有總結(jié)出為什么大腦對記憶的完全方法論,但是,就像我們專業(yè)程序員,打代碼都是先實踐,然后就漸漸懂了過程,慢慢懂了原理,所以第二遍讀的時候稍微慢下來,2周內(nèi)搞定。記住一句話:沒看完一個章節(jié)后,總結(jié)一下這個章節(jié)講了啥。很關(guān)鍵。

三.實踐(在整個過程中都要)

實踐的時候,要注意不用都去實踐,最好看著書,敲下代碼,把重點的內(nèi)容敲一遍有個肌肉記憶就很不錯了。

以及到自己做過的項目中去把每個有涉及的原理的代碼,研究一遍,就可以了。

下面介紹一些大整理的讀物,希望對初學者有所幫助:

以下提到的書籍我都一一找到了電子版,匯總在網(wǎng)盤里了,需要網(wǎng)盤的朋友加君羊:606940296

一.計算機網(wǎng)絡系列

1.《TCP/IP卷一》

這本其實我剛開始沒看太懂,可能是當時太水的原因,但是一般是大牛力薦的書。

2.《計算機網(wǎng)絡:自頂向下》

這本從應用層講到物理層,感覺這種方式學起來更輕松,我比較推薦小白看這本。

3.《圖解HTTP和圖解TCP/IP》

相較于前兩本大厚書,這兩本書更加親民,小白可以買來看看,還是很適合入門的。

4.《計算機網(wǎng)絡》

沒錯,就是這本教材,作為非科班選手自己看這本書,那叫一個欲仙欲死啊,看完就忘記了。

二.操作系統(tǒng)系列

1.《深入理解計算機系統(tǒng)》

這本書不是嚴格意義上的操作系統(tǒng)書籍,而是對計算機基礎和操作系統(tǒng)做了一個串聯(lián),可以解決你很多對于計算機的疑惑,并且對操作系統(tǒng)有一定理解。

其實這本書還是很厚的,有一定難度,建議有一些基礎后再看。

2. 《現(xiàn)代操作系統(tǒng)》

這本書其實我沒怎么看,比較詳細地講解了操作系,但是也是大家都比較推崇的書,還是那句話,很厚,慎看。

3.《Linux內(nèi)核設計與實現(xiàn)》

當你對操作系統(tǒng)有一定理解以后,這本書將為你打開學習Linux內(nèi)核的大門,當然在此之前你得有一定的c語言開發(fā)能力,以及對Linux的了解。反正,我現(xiàn)在還沒開始準備好看這本書。

4.《Unix網(wǎng)絡編程》

這兩本書的厚度絕對讓你感到絕望,其實就是講解了Unix內(nèi)核是如何實現(xiàn)網(wǎng)絡通信的,其中涉及到很多網(wǎng)絡,操作系統(tǒng)的知識,并且你要熟悉c語言。總之,這是一本奉為網(wǎng)絡編程神書的存在,不過我等新手還是拿他壓壓泡面就好了。網(wǎng)上有很多博客會參照該書的內(nèi)容,可以去看看它們。

三.數(shù)據(jù)結(jié)構(gòu)與算法系列

不瞞你說,由于我非科班,所以算法基礎比較差,數(shù)據(jù)結(jié)構(gòu)是考研時跟著天勤考研指南學的,學習算法也是一路坎坷,舉步維艱。還是分享幾本比較靠譜的書吧。

1.《算法導論》

你問我是不是認真的,我就是說說而已,這本書我買來沒看過。

2.《數(shù)據(jù)結(jié)構(gòu)與算法(Java版)》

這本書對于初學者來說還是比較友好的,當然學Java的看這本。

3.《算法圖解》《啊哈算法》

這兩部書籍非常適合學習算法的入門,前者主要用圖解的形式覆蓋了大部分常用算法,包括dp,貪心等等,可以作為入門書,后者則把很多常用算法都進行了實現(xiàn),包括搜索,圖,樹等一些比較高級的常用算法。

4 .《劍指offer》

這本書還是要強烈推薦的,畢竟是面試題經(jīng)常參考的書籍,當然最好有前面基本的鋪墊再看,可能收獲更大,這本書在面試之前一般都要嚼爛。

5.LeetCode教科書式刷題網(wǎng)站

這不是一本書,是一個題庫,算法么,終究還是要靠刷題來提升熟練度的。

四.Java基礎系列

1.《Java編程思想》

這本書也是被譽為Java神書的存在了,但是對新手不友好,適合有些基礎再看,當然要選擇性地看。我當時大概只看了1/3

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

這本書還是比較適合入門的,當然,這種厚皮書要看完還是很有難度的,不過比起上面那本要簡單一些

五.Java進階系列

1.《深入理解JVM虛擬機》

這本書是Java開發(fā)者必須看的書,很多jvm的文章都是提取這本書的內(nèi)容。JVM是Java虛擬機,賦予了Java程序生命,所以好好看看把,我自己就已經(jīng)看了三遍了。

2.《Java并發(fā)編程實戰(zhàn)》

這本書是Java 并發(fā)包作者寫的書,所以非常權(quán)威,但是比較晦澀難懂,我看的云里霧里的,大家可以按需選擇。

3.《Java并發(fā)編程藝術(shù)》

這本書是國內(nèi)作者寫的Java并發(fā)書籍,比上面那一本更簡單易懂,適合作為并發(fā)編程的入門書籍,當然,學習并發(fā)原理之前,還是先把Java的多線程搞懂吧。

4.《Effective Java》

這本書和Java編程思想一樣被稱為神書,主要講的是Java的一些優(yōu)化技巧和規(guī)范,沒有一定開發(fā)經(jīng)驗的人看這本書會覺得索然無味,不知所云,所以,先擱著吧。

5.《Java性能調(diào)優(yōu)指南》

說到JVM調(diào)優(yōu),可能會有很多的面試題浮現(xiàn)在你的腦海里,這本書比較權(quán)威地講解了Java的性能調(diào)優(yōu)方法,不過我還沒怎么看,有空好好看看。

6.《 Netty權(quán)威指南》

Netty是基于NIO開發(fā)的網(wǎng)絡編程框架,使用Java代碼編程,其實這本書也可以放在網(wǎng)絡或者Java Web部分。不過NIO屬于JDK自帶的一部分,是必須要掌握的,而對于Netty,大家如果學有余力的話也可以看看。

六.JavaWeb系列

1.《深入JavaWeb技術(shù)內(nèi)幕》

這本書是Java Web的集大成之作,涵蓋了大部分Java Web開發(fā)的知識點,不過一本書顯然無法把所有細節(jié)都講完,但是作為Java Web的入門或者進階書籍來看的話還是很不錯的。

2.《How Tomcat Works》

Java Web很重要的一部分內(nèi)容就是Tomcat,作為應用服務器,Tomcat使用Java開發(fā),其源代碼和架構(gòu)設計都是經(jīng)典之作。

這是一本講解Tomcat基本原理的書籍,很好地通過剖析源碼來講解Tomcat的內(nèi)部結(jié)構(gòu)和運行機制,但是需要一定的基礎才能夠看懂,我還沒看這本書,日后再拜讀。

2.《Tomcat架構(gòu)解析》

和上面這本書類似,主要講解Tomcat原理和架構(gòu),,要看懂這本書的話,前提是你要對Java基礎,NIO以及設計模式有所了解。這本書我也還沒看。

3.《Spring實戰(zhàn)》

這本書適合作為Spring的入門書籍,把Spring的概念,使用方式等內(nèi)容都講的比較清楚。并且也介紹了Spring MVC的部分內(nèi)容,Spring框架還是更注重實踐的,所以跟著書上的內(nèi)容去做吧。

4.《Spring源碼深度解析》

學會Spring基礎后,可以花點時間看看這本講源碼的書了,這本書對于新手來說不太友好,主要也是因為Spring的代碼結(jié)構(gòu)比較復雜,大家也可以看一些博客來完成對源碼的學習。

5.《Spring MVC學習指南》

本書是一本Spring MVC的教程,內(nèi)容細致、講解清晰,非常適合Web開發(fā)者和想要使用Spring MVC開發(fā)基于Java的Web應用的讀者閱讀。但是由于出的比較早,所以不太適合現(xiàn)在版本。

6.《Maven實戰(zhàn)》

Maven是Java Web開發(fā)中不可缺少的一部分,如果想要全面了解其實現(xiàn)原理的話,可以看看這本書。

七.數(shù)據(jù)庫系列

1.《數(shù)據(jù)庫原理》

數(shù)據(jù)庫原理應該是教材吧,這本書作為數(shù)據(jù)庫入門來說還是可以的,畢竟不是專門做DB的,看大厚書用處不大,這本書把數(shù)據(jù)庫的基本概念都講完了。

2.《SQL必知必會》

這本書主要是講解sql語句怎么寫,畢竟數(shù)據(jù)庫最重要的一點就是要熟練地使用sql語句,當然這本書也可以當做工具書來使用。

3.《深入淺出MySQL》

這本書適合作為MySQL的學習書籍,當你有了一定的MySQL使用經(jīng)驗后,可以看看它,該書從數(shù)據(jù)庫的基礎、開發(fā)、優(yōu)化、管理維護和架構(gòu)5個方面對MySQL進行了詳細的介紹,講的不算特別深,但是足夠我們使用了。這本書我也只看了一部分。

4.《MySQL技術(shù)內(nèi)幕:innodb存儲引擎》

看完上面那本書以后,對MySQL算是比較熟悉了,不過對于面試中??嫉膇nnodb引擎,還是推薦一下這本書把,專門講解了innodb存儲引擎的相關(guān)內(nèi)容。我還沒有細看,但是內(nèi)容足夠你學好innodb了。

5.《高性能Mysql》

這本書可以說是很厚了,更適合DBA拜讀,講的太詳細了,打擾了。

6.《Redis實戰(zhàn)》

和MySQL一樣,學習Redis的第一步最好也是先實戰(zhàn)一下,通過這本書就可以較好地掌握Redis的使用方法,以及相關(guān)數(shù)據(jù)結(jié)構(gòu)了。

7.《Redis設計與實現(xiàn)》

該書全面而完整地講解了 Redis 的內(nèi)部運行機制,對 Redis 的大多數(shù)單機功能以及所有多機功能的實現(xiàn)原理進行了介紹。這本書把Redis的基本原理講的一清二楚,包括數(shù)據(jù)結(jié)構(gòu),持久化,集群等內(nèi)容,有空應該看看。

八.分布式系列

1.《分布式Java應用》

這本書是淘寶大牛寫的書,主要講的就是使用rpc來構(gòu)建分布式的Java應用,講了很多基礎的東西,可以作為入門書籍,不過這本書我之前沒有遇到,所以沒看過。

2.《大型網(wǎng)站技術(shù)架構(gòu)》

這本淘寶系技術(shù)指南還是非常值得推崇的,可以說是把大型網(wǎng)站的現(xiàn)代架構(gòu)進行了一次簡單的總結(jié),內(nèi)容涵蓋了各方面,主要講的是概念,很適合沒接觸過架構(gòu)的同學入門。看完以后你會覺得后端技術(shù)原來這么博大精深。

3.《大型分布式網(wǎng)站架構(gòu)設計與實踐》

這本書與上面一書相比更傾向于實踐,主要講的是分布式架構(gòu)的一些解決方案,但是如果你沒有接觸過相關(guān)的場景,可能會看的云里霧里。

4 .《布式服務框架原理與實踐》

上面那本書講的是分布式架構(gòu)的實踐,而這本書更專注于分布式服務的原理講解和對應實踐,很好地講述了分布式服務的基本概念,相關(guān)技術(shù),以及解決方案等,對于想要學習分布式服務框架的同學來說是本好書。

5.《大型網(wǎng)站系統(tǒng)與Java中間件開發(fā)實踐》

話說這些書的名字真實夠長的。這本書也是阿里系出品,主要講的是大型網(wǎng)站系統(tǒng)以及使用的相關(guān)中間件,畢竟阿里是中間件大戶,所以很多中間件對應用再網(wǎng)站系統(tǒng)中,對于想學習這方面技術(shù)的同學來說可以一看。

6.《從Paxos到Zookeeper分布式一致性原理與實踐》

說起分布式系統(tǒng),我們需要了解它的原理,相關(guān)理論及技術(shù),這本書也是從這個角度出發(fā),講解了分布式系統(tǒng)的一些常用概念,并且?guī)С隽朔植际揭桓鐉ookeeper,可以說是想學分布式技術(shù)的同學必看的書籍。

7.《大規(guī)模分布式存儲系統(tǒng)》

這本書是阿里巴巴oceanbase核心開發(fā)大佬寫的書,講的是分布式存儲相關(guān)的原理和解決方案,該書不是很厚,如果想做存儲方向的同學可以看看。

九.云計算系列

云計算方面的內(nèi)容主要是我在實習階段接觸的,如果只是應用開發(fā)方向的話這塊不懂也罷。主要還是看個人興趣。

1.《OpenStack設計與實現(xiàn)》

OpenStack是基于KVM技術(shù)的一套私有云生態(tài)。這本書很好地講解了OpenStack的一些基本原理,包括各個組件的設計與實現(xiàn),比起另一本《OpenStack王者歸來》簡單易懂的多。當然,前提最好是你對Linux內(nèi)核和網(wǎng)絡有所了解。

2.《docker入門與實踐》

docker是現(xiàn)在應用部署的主流方案了,所以了解一下還是挺有必要的,這本書作為入門書籍足夠讓你會使用docker了。

3.《Kubenetes權(quán)威指南》

kubenetes是docker的集群解決方案,也是一個微服務的解決方案,所以這本書涉及的內(nèi)容非常多,需要有網(wǎng)絡,操作系統(tǒng)以及docker相關(guān)的基礎。我看這本書的時候可以說是非常暈的。

十.大數(shù)據(jù)系列

和云計算一樣,大數(shù)據(jù)方面的內(nèi)容也不算是Java后端技術(shù)棧所需要的,但是這也能為你加分,并且讓你跟大數(shù)據(jù)開發(fā)的崗位沾點邊,何樂而不為。

1.《大數(shù)據(jù)技術(shù)原理與應用》

作為大數(shù)據(jù)方面的一本教材,廈大教授寫的這本書還是非常贊的,從最基礎的原理方面講解了Hadoop的生態(tài)系統(tǒng),并且把每個組件的原理都講得比較清楚,另外也加入了spark,storm等內(nèi)容,可以說是大數(shù)據(jù)入門非常好的一本書了。

2.《Hadoop實戰(zhàn)》

這本書很厚,我買的時候大概看了一遍,一頭霧水。所以建議先看上面那本書,再來看更加進階的書籍,否則可能就是浪費時間了。

3.《Hadoop權(quán)威指南》

這本書主要對Hadoop生態(tài)中組件進行詳細講解,有點太詳細了,如果不是做大數(shù)據(jù)方向的話,可以不看。

十一.其他系列

1.《Git權(quán)威指南》

Git是現(xiàn)在大公司主流的代碼協(xié)同工具,如果你想要了解其底層原理,可以看看這本書。

2.《重構(gòu)——改善既有代碼的設計》

這本書主要介紹的是代碼重構(gòu)的一些指導思想和最佳實踐。有重構(gòu)需求的同學可以看看。

3.其他的其他

其他方面的書籍就太多了,比如軟件工程方面的,測試方面,Linux方面,以及講一些程序員自我提升的書籍,就不一一列舉了,因為這部分的內(nèi)容可以不歸入Java后端的技術(shù)棧。

十二.頸椎康復系列

1.《做自己的頸椎醫(yī)生》

身體是革命的本錢。懂得人不用解釋了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容