java - 有入門一些沒那么難的關(guān)于JVM的書推薦嗎
問題描述
想學(xué)習(xí)一下jvm的原理,對(duì)寫java代碼會(huì)有比較大的提升,太難的好像又還看不懂,暫時(shí)還覺得《深入了解Java虛擬機(jī)》這本書還不是很適合我這個(gè)大學(xué)生
最近下班后有空會(huì)看一下effective java 這本書,也挺不錯(cuò)的,雖然要慢慢理解
問題解答
回答1:周志明大大這本書已經(jīng)寫的很透徹了,我剛好最近也在看,我覺得虛擬機(jī)相關(guān)細(xì)節(jié)本身就是一個(gè)比較深入的內(nèi)容,需要靜下心去讀,去思考。雖然這樣看下去真的很慢,但很有收獲。真的要靜下心來,不要急躁!希望有幫到你
回答2:說實(shí)話,關(guān)于jvm的東西你最好有了一到兩年的經(jīng)驗(yàn)讀起來可能會(huì)很有收獲,并且理解起來可能更容易點(diǎn)。這種涉及到底層的原理的東西,其實(shí)對(duì)你寫代碼幫助并不是特別大,只是能夠幫你理解一些基礎(chǔ)。并且這書主要適合用來進(jìn)行jvm調(diào)優(yōu)的的工作,至少在你現(xiàn)在的階段,jvm本身就足以滿足你的需求,并不用調(diào)優(yōu)。
關(guān)于jvm的書,有《深入Jvm虛擬機(jī)》和《jvm虛擬機(jī)規(guī)范》,我有前者,作者也盡量用一些很通俗易懂的例子去解釋內(nèi)在的原理,雖然如此,但是理解起來還是略有難度。若想提升寫代碼的能力,不如多看點(diǎn)實(shí)際代碼,多敲點(diǎn)代碼,只有當(dāng)你積累一定的代碼量,去看底層才會(huì)豁然開朗。
這就好比你用斧子,首先你要知道斧子怎么用,用來干什么,當(dāng)你用的很熟練的時(shí)候,你就會(huì)對(duì)斧子的構(gòu)造以及為什么這么設(shè)計(jì),這樣設(shè)計(jì)有什么好處有一個(gè)整體通透的理解。再去選擇造斧子把!
回答3:不管哪本書都要耐下心來看,自然就會(huì)有收獲。想當(dāng)初看《算法導(dǎo)論》打開看兩眼就放棄了,現(xiàn)在倒也能看下去。
虛擬機(jī)這塊建議先看一些博客,心里大致有一個(gè)認(rèn)知框架,這個(gè)階段書的話推薦《分布式Java應(yīng)用基礎(chǔ)與實(shí)踐》的第3章。
之后推薦《深入理解Java虛擬機(jī)》,重點(diǎn)看第2、3、4、7章,之后可以再繼續(xù)看第8、12、13章,可以結(jié)合著《Java性能權(quán)威指南》一起看。
回答4:說實(shí)話,了解JVM對(duì)寫Java代碼的提升不是特別大,一般簡(jiǎn)單的優(yōu)化編譯器已經(jīng)幫你做了。如果真要做些大優(yōu)化,一般都是根據(jù)場(chǎng)景的參數(shù)調(diào)優(yōu)。
如果你對(duì)JVM感興趣,在這里自薦兩篇我的博客:
淺析JVM之內(nèi)存管理
JVM體系結(jié)構(gòu)與工作方式概覽
然后想說的是,Effective Java適合壘代碼壘了一年以上的程序員,新手去看是沒多大意義的。而且基本和JVM無關(guān)。
回答5:<head first java> head first 系列的書都很不錯(cuò), 另外就是<JDK學(xué)習(xí)筆記>也不錯(cuò)
相關(guān)文章:
1. javascript - iframe 為什么加載網(wǎng)頁的時(shí)候滾動(dòng)條這樣顯示?2. 老師您好!我有一個(gè)問題、3. 后端開發(fā) - mysql按時(shí)間分段統(tǒng)計(jì)的sql語句怎么寫好?4. 網(wǎng)頁爬蟲 - python+requests 網(wǎng)頁重定向求解5. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法6. mysql - 在下剛?cè)腴Tsql 關(guān)于sql的語法詢問7. c++ - 如何在python的阻塞的函數(shù)中獲取變量值8. list - python 求助9. 初來乍到,相對(duì)路徑問題,新手求教10. 請(qǐng)問寫好python模塊以后,文檔怎么寫?
