Java虛擬機是一個旨在執行其他程序的程序。這是一個簡單的想法,也是我們編碼功夫的最好例子之一。JVM打破了當時的現狀,今天繼續支持編程創新。想學習java虛擬機相關知識,建議考慮報名參加Java培訓,有明確的學習路線和全面系統的課程,能獲得較快提升。
JVM做什么?
JVM有兩個主要功能:允許Java程序在任何設備或操作系統上運行(稱為“一次寫入,隨時隨地運行”原則),以及管理和優化程序內存。當Java于1995年發布時,所有計算機程序都被寫入特定的操作系統,程序內存由軟件開發人員管理。JVM是一個啟示。
對JVM進行技術定義是很有用的,而且軟件開發人員每天都在思考它。讓我們來分析一下:
技術定義:JVM是執行代碼并為該代碼提供運行時環境的軟件程序的規范。
日常定義:JVM是我們運行Java程序的方式。我們配置設置,然后依靠JVM在執行期間管理程序資源。
當開發人員談論JVM時,我們通常指的是在機器上運行的進程,特別是服務器,它表示并控制Java應用程序的資源使用。與JVM規范相比,JVM規范描述了構建執行這些任務的程序的要求。在Java培訓學習中,會有很多JVM的學習課程,會有實操項目的訓練,讓你學會在項目使用開發工具,大大提高你的開發技能。
JVM語言
雖然JVM曾經只適用于Java,但它足夠靈活和強大,足以支持今天的許多其他語言。其中最流行的是用于實時并發應用程序的Scala,以及動態類型腳本語言Groovy。另一個突出的例子是Kotlin,它提供了面向對象和功能風格的混合。所有這些都被認為是JVM語言,這意味著,即使它們不是用Java編寫的,程序員仍然可以訪問龐大的Java庫生態系統。
垃圾收集
與正在運行的JVM最常見的交互是檢查堆和堆棧中的內存使用情況。最常見的調整是調整JVM的內存設置。
在Java之前,所有程序內存都由程序員管理。在Java中,程序內存由JVM管理。JVM通過一個稱為垃圾收集的過程來管理內存,該過程持續地識別和消除Java程序中未使用的內存。垃圾收集發生在正在運行的JVM中。參加java培訓,有理論知識+實踐項目,雙管齊下,學以致用,讓你深入淺出地學習java。
JVM的三個部分
JVM規范
首先,JVM是一個軟件規范。JVM規范以某種循環的方式強調了它的實現細節沒有在規范中定義,以便在實現中發揮最大的創造力:
所以,JVM要做的就是正確運行Java程序。聽起來很簡單,甚至從外面看起來很簡單,但是這是一項艱巨的任務,尤其是考慮到Java語言的強大和靈活性。
JVM實現
實現JVM規范會產生一個實際的軟件程序,這是一個JVM實現。事實上,有許多JVM實現,包括開源和專有的。OpenJDK的HotSpot是JVM參考實現。它仍然是世界上測試最徹底的代碼庫之一。
HotSpot可能是最常用的JVM,但它絕不是唯一的JVM。另一個有趣且流行的實現是GraalVM,它具有高性能,并通過LLVM規范支持其他傳統非JVM語言,如C++和Rust。還有一些特定領域的JVM,如嵌入式機器人JVM、LeJOS
通常,你下載并安裝JVM作為Java運行時環境(JRE)的捆綁部分。JRE是Java的磁盤部分,它產生了一個正在運行的JVM。通過java培訓的學習,你可以學到很多企業級項目經驗和技能,找到工作后,可以立馬上崗實操,大大提高開發效率。
JVM實例
JVM規范作為軟件產品實現并發布后,你可以下載并將其作為程序運行。下載的程序是JVM的實例(或實例化版本)。
大多數時候,當開發人員談論“JVM”時,我們指的是在軟件開發或生產環境中運行的JVM實例。你可能會說:“該服務器上的JVM使用了多少內存?”或者,“我真不敢相信我創建了一個循環調用,堆棧溢出錯誤使我的JVM崩潰了,真是個新手錯誤!”
結論
1995年,JVM引入了兩個革命性的概念,這兩個概念已經成為現代軟件開發的標準內容:“一次編寫,隨處運行”和自動內存管理。軟件互操作性在當時是一個大膽的概念,但今天很少有開發人員會對此三思。
盡管Java虛擬機最初只是針對Java的,但今天它已經發展到支持許多腳本和編程語言,包括Scala、Groovy和Kotlin。展望未來,很難想象JVM不會成為開發領域的一個突出部分。想學習jvm的同學,建議參加java培訓,在專業老師和系統課程的帶領學習下,很快就能掌握了這部分的知識和技能。