java - 有入門一些沒那么難的關(guān)于JVM的書推薦嗎
問題描述
想學(xué)習(xí)一下jvm的原理,對寫java代碼會有比較大的提升,太難的好像又還看不懂,暫時還覺得《深入了解Java虛擬機(jī)》這本書還不是很適合我這個大學(xué)生
最近下班后有空會看一下effective java 這本書,也挺不錯的,雖然要慢慢理解
問題解答
回答1:周志明大大這本書已經(jīng)寫的很透徹了,我剛好最近也在看,我覺得虛擬機(jī)相關(guān)細(xì)節(jié)本身就是一個比較深入的內(nèi)容,需要靜下心去讀,去思考。雖然這樣看下去真的很慢,但很有收獲。真的要靜下心來,不要急躁!希望有幫到你
回答2:說實話,關(guān)于jvm的東西你最好有了一到兩年的經(jīng)驗讀起來可能會很有收獲,并且理解起來可能更容易點。這種涉及到底層的原理的東西,其實對你寫代碼幫助并不是特別大,只是能夠幫你理解一些基礎(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)在的原理,雖然如此,但是理解起來還是略有難度。若想提升寫代碼的能力,不如多看點實際代碼,多敲點代碼,只有當(dāng)你積累一定的代碼量,去看底層才會豁然開朗。
這就好比你用斧子,首先你要知道斧子怎么用,用來干什么,當(dāng)你用的很熟練的時候,你就會對斧子的構(gòu)造以及為什么這么設(shè)計,這樣設(shè)計有什么好處有一個整體通透的理解。再去選擇造斧子把!
回答3:不管哪本書都要耐下心來看,自然就會有收獲。想當(dāng)初看《算法導(dǎo)論》打開看兩眼就放棄了,現(xiàn)在倒也能看下去。
虛擬機(jī)這塊建議先看一些博客,心里大致有一個認(rèn)知框架,這個階段書的話推薦《分布式Java應(yīng)用基礎(chǔ)與實踐》的第3章。
之后推薦《深入理解Java虛擬機(jī)》,重點看第2、3、4、7章,之后可以再繼續(xù)看第8、12、13章,可以結(jié)合著《Java性能權(quán)威指南》一起看。
回答4:說實話,了解JVM對寫Java代碼的提升不是特別大,一般簡單的優(yōu)化編譯器已經(jīng)幫你做了。如果真要做些大優(yōu)化,一般都是根據(jù)場景的參數(shù)調(diào)優(yōu)。
如果你對JVM感興趣,在這里自薦兩篇我的博客:
淺析JVM之內(nèi)存管理
JVM體系結(jié)構(gòu)與工作方式概覽
然后想說的是,Effective Java適合壘代碼壘了一年以上的程序員,新手去看是沒多大意義的。而且基本和JVM無關(guān)。
回答5:<head first java> head first 系列的書都很不錯, 另外就是<JDK學(xué)習(xí)筆記>也不錯
相關(guān)文章:
1. html - vue項目中用到了elementUI問題2. mysql scripts提示 /usr/bin/perl: bad interpreter3. showpassword里的this 是什么意思?代表哪個元素4. css3 - border-bottom 的長度可否超過盒子的寬度呢?實現(xiàn)如下圖效果。(我的書下面的線)5. javascript - windows下如何使用babel,遇到了困惑6. 對mysql某個字段監(jiān)控的功能7. css3 - css怎么實現(xiàn)圖片環(huán)繞的效果8. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?9. JavaScript事件10. mysql優(yōu)化 - mysql EXPLAIN之后怎么看結(jié)果進(jìn)行優(yōu)化 ?
