在江湖中要練就絕世武功必須內外兼?zhèn)?,精妙的招式和深厚的內功,武功的基礎是內功。對于武功低(就像江南七怪)的人,招式更重要,因為他們不能靠內功直接去傷人,只能靠招式,利刃上優(yōu)勢來取勝了,但是練到高手之后,內功就更主要了。一個內功低的人招式在奇妙也打不過一個內功高的人。比如,你劍法再厲害,一劍刺過來,別人一掌打斷你的劍,你還怎么使劍法,你一掌打到一個武功高的人身上,那人沒什么事,卻把你震傷了,你還怎么打。同樣兩者也是相輔相成的,內功深厚之后,原來普通的一招一式威力也會倍增。
對于搞開發(fā)的我們其實也是一樣,現在流行的框架越來越多,封裝的也越來越完善,各種框架可以搞定一切,幾乎不用關注底層的實現,初級程序員只要熟悉基本的使用方法,便可以快速的開發(fā)上線;但對于高級程序員來講,內功的修煉卻越發(fā)的重要,比如算法、設計模式、底層原理等,只有把這些基礎熟練之后,才能在開發(fā)過程中知其然知其所以然,出現問題時能快速定位到問題的本質。
對于Java程序員來講,spring全家桶幾乎可以搞定一切,spring全家桶便是精妙的招式,jvm就是內功心法很重要的一塊,線上出現性能問題,jvm調優(yōu)更是不可回避的問題。因此JVM基礎知識對于高級程序員的重要性不必言語,我司在面試高級開發(fā)的時候,jvm相關知識也必定是考核的標準之一。本篇文章會根據之前寫的jvm系列文章梳理出jvm需要關注的所有考察點。
jvm 總體梳理
jvm體系總體分四大塊:
類的加載機制
jvm內存結構
GC算法 垃圾回收
GC分析 命令調優(yōu)
當然這些知識點在之前的文章中都有詳細的介紹,這里只做主干的梳理