以下是我推薦給Java開發(fā)者們的一些值得一看的好書。
“學習的最好途徑就是看書“,這是我自己學習并且小有了一定的積累之后的第一體會。
個人認為看書有兩點好處:
1.能出版出來的書一定是經(jīng)過反復的思考、雕琢和審核的,因此從專業(yè)性的角度來說,一本好書的價值遠超其他資料
2.對著書上的代碼自己敲的時候方便
很多程序員們往往有看書的沖動,但不知道看哪些書,下面我就給各位Java程序猿們推薦一些好書,其中絕大多數(shù)都是我自己平時在看的書,也算是我對于平時讀的書做一個小總結(jié)和讀后感吧。
作者是周志明,這本書可以說是國內(nèi)寫得最好的有關Java虛 擬機的書籍,近半年,前前后后這本書我起碼看了有5遍。國內(nèi)寫虛擬機的書除了這本,其實還有一些其他的,我也買過,不過粗略看下來,很多內(nèi)容也是《深入理 解Java虛擬機:JVM高級特性與最佳實踐》此書里面的。
另外值得一提的是,《深入理解Java虛擬機:JVM高級特性與最佳實踐》這本 書,有電子版的,網(wǎng)上搜一下就能下載到了。不過建議有興趣的朋友還是去買書看,電子版本下載到的一般是比較老的版本,相比最新修訂版的《深入理解Java 虛擬機:JVM高級特性與最佳實踐》,有很多作者新補充的知識點是沒有的。
我們平時使用的乃至商用的大多數(shù)Java虛擬機都是Sun公司的HotSpot,大家cmd進入命令行,使用”java -version”命令就可以看到了。如果希望在Java虛擬機規(guī)范的基礎上更加深入地去理解虛擬機的一些細節(jié)是怎么實現(xiàn)的,就可以看一下《HotSpot實戰(zhàn)》一書,作者是陳濤。不過由于HotSpot的源碼都是C/C++寫的,所以要求讀者有非常好的C/C++基礎,如果對這兩門語言不是很熟悉的朋友,看這本書可能對你幫助不是很大。
最后提一句,如果有興趣的朋友,不妨先去網(wǎng)上下載一個openJDK,HotSpot的源碼就在里面。
。翻開這本書看,多線程什么用、什么是死鎖、什么是競爭、什么是線程安全等等,方方面面的知識點都用大量的文字篇幅講解,不免讓人感覺十分枯燥,也 難讓讀者有實質(zhì)性的進步。我這本書看了兩遍也屬于一目十行意思,有興趣的地方就重點看一下。無論如何,作為一本常常位于Jva程序員必讀十大書籍排行榜前幾名的書,還是一定要推薦給大家的。
作者高洪巖,想要學習多線程的朋友,這本書是我大力推薦的,我的個人博客里面二十多篇的多線程博文都是基于此書,并且在這本書的基礎上進行提煉和總結(jié)而寫出來的。
此書和《Java并發(fā)編程實戰(zhàn)》 相反,這本書的特點是大篇幅的代碼+小篇幅的精講解,可能這和中國人寫的書比較偏向?qū)嵱弥髁x的風格有關。本書關于線程安全、synchronized、 Reentrant、Timer等等都用詳細的代碼進行了講解,而且每個大知識點下的多個小知識點都會詳細講解到,非常有實踐價值。
作者是Joshua Bloch,這個人就很厲害了,他是谷歌的首席架構(gòu)師,屬于超級技術(shù)大牛級別了吧。這是唯一一本我沒有買的書,由于沒有看過這本書,所以我不好發(fā)表評論,但是從這本書的知名度 以及其作者的來頭來看(多提一句,這本書也是Java之父James Gosling博士推崇的一本書),我相信這一定是一本值得一看的好書。
作者許令波,淘寶工程師。這本書我用一個字概括就是:全。真的非常全,HTTP、DNS、CDN、靜態(tài)化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知識面非常廣,但又不像專門精講某個知識點的書籍一樣講得非常深入,感覺這本書就是盡量去用短的篇幅講清楚一些Java Web使用到的技術(shù)的內(nèi)幕,讓讀者對這些知識點的技術(shù)內(nèi)幕有一個理性的認識。
一個字評價這本書,屌;兩個字評價這本書,很屌;三個字評價這本書,非常屌。作者是李智慧,原阿里巴巴技術(shù)專家。關于分布式的知識點,都在這本書里面有體現(xiàn),只有你想不到,沒有他寫不到,而且寫得非常易懂,基本屬于看一兩遍,再記一些筆記就知道是怎么一回事兒了。多看 幾遍,對分布式的理解一定會加深不少。而且里面不僅僅是分布式的知識,還非常接地氣地寫了如何做一個好的架構(gòu)師,其實我認為這不僅僅是寫給想做架構(gòu)師的讀 者看的,就是給讀者一些建議,如何更好地提出意見、如何更讓別人關注你的聲音、如何看到他人的優(yōu)點,入木三分,讓人獲益匪淺。
作者曾憲杰,是淘寶的技術(shù)總監(jiān),算起來應該在阿里有至少P8的級別了吧。
本書要突出的重點是中間件三個字,中間件是分布式系統(tǒng)中一個非常重要的東西,其最重要的作用應該就是解耦,降低模塊與模塊之間的強依賴,不同的模塊之間的依賴度降低,便可以各自獨立地開發(fā)自己的功能,這也可以說是軟件工程發(fā)展的目標和驅(qū)動力。
因此,本書有一部分的內(nèi)容就是基于中間件,詳細講解了中間件與JMS的各種知識,適合對分布式系統(tǒng)比較熟悉并且想要往中間件方面有一定研究的讀者。
作者倪超,阿里巴巴工程師。這本書是我最近在研讀的一本書,本書從分布式系統(tǒng)基本理論開始講起,講到Paxos算法,最后慢慢引入到Zookeeper,循序漸進。當然,更多的我目前還不方便發(fā)表什么看法,因為這本書的第二張Paxos算法我都還沒有弄懂(Paxos算法確實有些難以理解和不太易懂),接下來的章節(jié)還沒有看下去。
如果網(wǎng)友們所在的公司在使用Zookeeper,并且你又對Zookeeper感興趣想要研究一下它的原理的,這本書將是不二之選。
作者劉增杰和李坤。作為一名Java程序員,我認為我們千萬不要覺得數(shù)據(jù)庫是DBA的事情,數(shù)據(jù)庫對一個Java程序員來說也是必須掌握的一門知識,豐富的數(shù)據(jù)庫性能優(yōu)化經(jīng)驗是一個頂尖程序員必備技能。MySQL學習我推薦的是這本我自己學習看的《MySQL5.6從零開始學》,我是覺得挺好的這本書,書里面的知識點很細致、很全面。
作者郝佳。Spring 這個框架做得太好了,功能太強大了,以至于很多開發(fā)者都只知Spring,不知什么是工廠、什么是單例、什么是代理(我面試別人的真實體會)。這種功能強 大的框架內(nèi)部一定是很復雜的實現(xiàn),這就導致一旦你的程序使用Spring,出了問題,可能是Error、可能是Exception、可能是程序運行結(jié)果不 是你的預期的,出現(xiàn)諸如此類問題的時候,將會讓你感到困惑,除了上網(wǎng)查資料或者問別人似乎沒有更好的解決辦法。
后記
以上就是我推薦給Java開發(fā)者們的一些值得一看的書。但是這些書里面并沒有Java基礎、教程之類的。因為離我學習 Java基礎過去好幾年了,我學習的時候看的什么也忘了,所以我不能不負責任地推薦一些我自己都沒有看過的書給大家。
建議
對于Java基礎知識的學習, 我提兩點建議吧:
1、多寫多敲代碼,好的代碼與扎實的基礎知識一定是實踐出來的
2、可以去博學谷下載一下基礎的視頻來學習一下Java基礎。
最后,每一位讀到這里的網(wǎng)友,感謝你們能耐心地看完。希望在成為一名更優(yōu)秀的Java程序員的道路上,我們可以一起學習、一起進步。
聯(lián)系客服