更新時(shí)間:2019-10-22 09:54:29 來源:動力節(jié)點(diǎn) 瀏覽2921次
如果你這輩子只甘心做一個平庸的Java碼農(nóng),那么你完全沒有必要去學(xué)習(xí)JVM相關(guān)的知識,學(xué)習(xí)JVM對于一個Java程序員的好處大概可以概括為下幾點(diǎn):
1)你能夠明白為什么Java最早期被稱為解釋型語言,而后來為什么又被大家叫做解釋與編譯并存的語言(了解JVM中解釋器以及即時(shí)編譯器就可以回答這個問題);
2)你能夠理解動態(tài)編譯與靜態(tài)編譯的區(qū)別,以及動態(tài)編譯相對于靜態(tài)編譯到底有什么好處(JVMJIT);
3)你能夠利用一些工具,jmap,jvisualvm,jstat,jconsole等工具可以輔助你觀察Java應(yīng)用在運(yùn)行時(shí)堆的布局情況,由此你可以通過調(diào)整JVM相關(guān)參數(shù)提高Java應(yīng)用的性能;
4)可以清楚知道Java程序是如何執(zhí)行的;
5)可以明白為什么Java等高級語言具有可移植性強(qiáng)的特性。
本文帶領(lǐng)大家對Jvm整體的印象進(jìn)行初步的認(rèn)識,我們明白了Jvm的學(xué)習(xí)能帶給我們的收益,以及Jvm該如何學(xué)習(xí),而這些問題恰好是剛開始學(xué)習(xí)Jvm時(shí)最大的障礙。萬事開頭難,好的開始是成功的一半,恭喜你學(xué)習(xí)了Java領(lǐng)域中一項(xiàng)不可或缺的技能。
學(xué)習(xí)JVM無外乎以下幾個原因:
1、程序調(diào)優(yōu)
不同的程序(業(yè)務(wù)場景)需要不同的Jvm配置,比如設(shè)置不同的垃圾收集器、設(shè)置新生代和老生帶的內(nèi)存配置和占比等,不同的配置對于程序的運(yùn)行有著千差萬別的影響。而Jvm默認(rèn)的配置只能保證程序能夠“運(yùn)行”,而想要“很好的運(yùn)行”甚至是“更好的運(yùn)行”,就是學(xué)習(xí)Jvm最主要的因素之一。
2、排查程序運(yùn)行問題
有些程序可能在線上使用的時(shí)候會遇到各種各樣的問題,而這些問題通常都是致命的,比如內(nèi)存溢出,死鎖導(dǎo)致的程序運(yùn)行緩慢等,而這些問題在開發(fā)和小量并發(fā)測試階段是很容易被忽略的缺陷,所以學(xué)習(xí)好了Jvm才能在關(guān)鍵的時(shí)候,臨危不亂幫你掃除系統(tǒng)中的“頑疾”。
3、掌握了程序執(zhí)行的根本和原理
也就是很多人說的:不但要“知其然”,還要“知其所以然”。
4、規(guī)避寫代碼時(shí)候的一些錯誤
比如避免重載可變長參數(shù)的調(diào)用(后面文章會給出具體的案例)。
5、應(yīng)付面試
不得不說這也是很多人學(xué)習(xí)的目的之一,當(dāng)然這也是積極的推動力,如果你明白“鯰魚效應(yīng)”的話。
6、掌握了其他語言的通用機(jī)制
JVM還有一個強(qiáng)大之處是,它不止可以運(yùn)行Java程序,還可以運(yùn)行Scala、Clojure、Groovy,以及時(shí)下熱門的Kotlin,學(xué)習(xí)JVM便可以了解這些語言的通用機(jī)制,甚至于讓這些語言共享生態(tài)系統(tǒng)。
怎么有效的學(xué)習(xí)JVM?
以上了解了學(xué)習(xí)JVM的種種好處,但是怎么有效的學(xué)習(xí)JVM呢?有人可能一看到“JVM”或者“Java虛擬機(jī)”這幾個字就懵了,不知道它是啥,更別說要怎么學(xué)了。
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“Java架構(gòu)師教程:JVM學(xué)習(xí)教程分享”的內(nèi)容,希望對大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)視頻
2019Java最新最全視頻教程下載:http://www.ilovecolors.com.cn/video.html
相關(guān)內(nèi)容
【java架構(gòu)師培訓(xùn)】合格java架構(gòu)師標(biāo)準(zhǔn)是什么
2019最新Java架構(gòu)師學(xué)習(xí)路線
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743