為什么要學習Java虛擬機?
為什么要學習JVM?
學習Java虛擬機有什么好處?
這些問題就好像在問Java程序猿:你為什么要變強大!
C++程序編譯后可直接運行於物理機CPU上。而Java程序則不同,它是運行在Java虛擬機上。寫C++程序的時候,程序員需要自己分配內存和回收內存,一不小心很容易出現內存泄漏錯誤。寫Java程序則不必擔心內存的分配和回收,內存的分配和回收全權由Java虛擬機代理,大大降低了內存泄漏的機率。
但是,日常Java開發中,一旦出現OutOfMemory錯誤,如果對Java虛擬機不熟悉的話,就很難下手調試這個問題。只能對着BUG搔首撓耳,百思不得其解了。所以學習Java虛擬機就很有必要。
在我看來掌握好JVM這門技藝有但不限於以下好處:
(1) 一覽無余地看到Java代碼是如何運行的。
(2) 內存溢出、內存泄漏問題不在話下。
(3) 系統優化、JVM調優不再話下。
最后,如圖。