溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jvm和Java的關系是什么

發布時間:2022-01-14 10:48:53 來源:億速云 閱讀:310 作者:小新 欄目:大數據

這篇文章主要介紹了jvm和Java的關系是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

JVM是什么

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

所謂的java虛擬機,就是一臺虛擬的機器。它是一款軟件,用來執行一系列虛擬計算機指令,大體上虛擬機可以分為系統虛擬機和程序虛擬機。visual Box、VMare就屬于系統虛擬機。他們完全是對物理計算機的仿真,提供一個可運行完整操作系統的軟件平臺。而java虛擬機就是典型程序虛擬機,它專門為執行單個計算機程序而設計,在java虛擬機中執行的指令我們稱之為java字節碼指令。

比如一臺服務器上運行著兩個用Java編寫的程序,一個博客系統,一個電商系統,那么這兩個Java程序、Java虛擬機、服務器之間是什么關系呢?

從上圖可以看出來,Java寫的博客系統,電商系統都是運行在jvm之上,這兩個Java程序啟動也對應著會啟動兩個JVM實例。JVM是運行在服務器的系統之上,服務器可以是linux系統,可以是windows系統,可以是centos系統,各種系統都可以。這也就是常說的Java是一次編譯到處運行??赡苓@么說還是不通俗易懂,至少我剛開始學Java的時候我的老師這么說我就沒有理解。那么我就說說我自己工作后的理解。

我們跑Java程序之前首先肯定是裝jdk,我們在windows裝jdk環境是用的windows版本的jdk,在linux上裝jdk用的linux版本的jdk;jdk我們就可以理解為由Java程序設計語言、Java虛擬機、Java類庫組成(Java Development kit)。我們寫的Java程序可以在服務器上跑的前提是這個服務器裝了jdk環境。也就是只要是服務器裝了jdk環境,我們用maven或者gradle或者其他工具編譯打包好的Java程序jar包就可以直接運行,我不需要在Java程序里面去適配你的windos環境還是linux環境還是centos環境。

jvm和Java的關系

jvm和Java是什么關系呢,jvm和Java是不是只能相互依存呢?我剛開始學Java的時候接觸到jvm,我就說這么認為的,因為jvm又叫Java虛擬機,所以我認為jvm就是專門為Java設計的。Java有Java自己的規范,根據這個規范也衍生出多種不同的jdk,比如Oracle的jdk,sun的jdk(sun已經被oracle收購)IBM的jdk;虛擬機也有虛擬機自己的規范,根據這個規范也衍生出了多種不同的虛擬機,比如:武林盟主HotSpot虛擬機,小家碧玉Mobile Embedded VM,天下第二BEA JRockit/IBM J9虛擬機等。但是2018年4月,Oracle Labs新出了一個虛擬機Graal VM,口號是:“Run Programs Faster Anywhere”與Java剛誕生時候的“Write Once,Run Anywhere”遙相呼應,Graal VM是一個增強版虛擬機,可以作為“任何語言”的運行平臺使用,這里“任何語言”包括了Java、Scala、Groovy、Kotlin等基于Java虛擬機之上的語言,還包括了C、C++、Rust等基于LLVM的語言,同時支持其他像JavaScript、Ruby、Python和R語言等。Graal VM可以無額外開銷地混合使用這些編程語言,支持不同語言中混用對方的接口和對象,也能夠支持這些語言使用已經編寫好的本地庫文件。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“jvm和Java的關系是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女