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. macos - mac下docker如何設(shè)置代理2. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?3. docker不顯示端口映射呢?4. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””5. java - 請(qǐng)問在main方法中寫成對(duì)象名.屬性()并賦值,與直接參參數(shù)賦值輸錯(cuò)誤是什么原因?6. android studio總是在processes running好久7. MySQL數(shù)據(jù)庫中文亂碼的原因8. docker-compose 為何找不到配置文件?9. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?10. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下
