什麼是java虛擬機?(帶小白深入理解)

什麼是Java虛擬機

作爲一個Java程序員,我們每天都在寫Java代碼,我們寫的代碼都是在一個叫做Java虛擬機的東西上執行的。但是如果要問什麼是虛擬機,恐怕很多人就會模棱兩可了。在本文中,我會寫下我對虛擬機的理解。因爲能力所限,可能有些地方描述的不夠欠當。如果你有不同的理解,歡迎交流。

我們都知道java程序必須在虛擬機上運行。那麼虛擬機到底是什麼呢?先看網上搜索到的比較靠譜的解釋:

虛擬機是一種抽象化的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。JVM屏蔽了與具體操作系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。

這種解釋應該算是正確的,但是隻描述了虛擬機的外部行爲和功能,並沒有針對內部原理做出說明。一般情況下我們不需要知道虛擬機的運行原理,只要專注寫java代碼就可以了,這也正是虛擬機之所以存在的原因--屏蔽底層操作系統平臺的不同並且減少基於原生語言開發的複雜性,使java這門語言能夠跨各種平臺(只要虛擬機廠商在特定平臺上實現了虛擬機),並且簡單易用。

總的來說Java虛擬機是一個可以執行Java字節碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的字節碼文件。Java被設計成允許應用程序可以運行在任意的平臺,而不需要程序員爲每一個平臺單獨重寫或者是重新編譯。Java虛擬機讓這個變爲可能,因爲它知道底層硬件平臺的指令長度和其他特性.

根據本人多年從業以及學習經驗,錄製了一套最新的Java精講視頻教程,如果你現在也在學習Java,在入門學習Java的過程當中缺乏系統的學習教程,你可以加羣654631948領取下學習資料,面試題,開發工具等,羣裏有資深java老師做答疑,每天也會有基礎部分及架構的直播課,也可以加我的微信renlliang2013做深入溝通,只要是真心想學習Java的人都歡迎。

java基礎教程:https://ke.qq.com/course/149432?tuin=57912c43


Java分佈式互聯網架構/微服務/高性能/springboot/springcloud:

https://ke.qq.com/course/179440?tuin=57912c43

發佈了84 篇原創文章 · 獲贊 43 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章