曾幾何時,當我們第一次了解Hello world時,我們怎么知道在執行代碼時,一種神奇的語言Java并沒有直接將我們撰寫的Java代碼交付到作業系統的底部進行決議和編譯,而是使用JDK編譯Java代碼,編譯成dotclass檔案,然后將dotclass檔案傳輸到JRE,(dotclass實際上是.Class)
JRE是Java運行時環境,因為Java有一個秘密武器,那就是JVM!JVM是JRE的一個重要核心,可以說,JVM是JRE的靈魂,控制身體,執行代碼的藝術,JRE包含JVM呼叫所需的幾乎所有類別庫,可以說JVM是JRE的驅動程式,是整個JDK的驅動程式,也是整個java的驅動程式!
你好,我是人生激活碼,今天,讓我們簡單地談談為什么Java需要JVM,今天的話題非常大,但限于篇幅,我們只是簡單地談談!
一、快速理解JVM
JVM是Java虛擬機,也就是Java虛擬機的意思,基本上,“虛擬”這個詞也可以看出,如果你想在作業系統上實作許多功能,你需要一個具有完整架構和強大執行力的執行標準!這有點像“作業系統”嗎?JVM實際上是一種Java指令執行規范,它構成了JVM,當我們學習java時,我們都知道有JDK和JRE,當我們深入研究的時候,我們會發現,也有JVM的仙女,,,
讓我們先澄清一下這些事情之間的關系:
讓我先給出答案:JDK包含JRE,JRE包含JVM,
我們都知道JDK是一個java開發工具包,也稱為toolkit,因為它的主要功能是為JVM提供額外的類別庫工具,例如用于編譯java檔案的javac二進制程式,這些程式存盤在bin目錄中,很多程式都安裝了bin目錄,這不是很奇怪嗎?因為這個bin的意思是binary,它是binary的縮寫,也就是二進制檔案的目錄,
除了javac,類似的小工具還包括Java(bin目錄中的.Exe二進制檔案)、jar和其他檔案,好的,那么JRE呢?JRE為Java程式提供了一個執行環境,有了JRE,我們的Java程式可以在瀏覽器中運行,為什么是JRE?由于我們的JVM,我們都知道Java只需編譯一次,就可以在任何地方運行,這是怎么回事?
這實際上是JRE的功勞,我們的JRE中文版不是Java運行時環境嗎?是的,我們知道Java在JVM中運行,Java運行時環境不是JVM的運行時環境嗎?俗話說,聰明的女人沒有稻草就做不了磚,JVM不可能單獨執行所有Java程式,它還需要一些用底層C語言撰寫的類別庫,此時,JRE的重要性顯而易見,JRE為JVM提供了幾乎所有的依賴類別庫,這樣,它真的實作了一次性編譯,到處運行!

JVM可以執行Java程式,它是否直接執行java檔案?不,正如我們所說,Java和作業系統之間沒有直接的聯系,Java檔案被交給作業系統進行處理,但Java檔案是從javac二進制檔案類檔案(也稱為位元組碼檔案)編譯而來的,位元組碼檔案是否直接執行到作業系統?不,讓我們看看普通程式和Java程式執行之間的區別:
二、Java程式的加載程序

這是什么意思?這意味著作業系統不知道位元組碼檔案,位元組碼檔案還需要通過JVM加載到機器代碼中,即操作碼操作代碼(目前還不是全部),它被翻譯成機器代碼,即作業系統回傳執行Java程式之前可以理解的語言,這是什么,這實際上有點像我們通常所說的黑盒測驗,我們看不到整個程序,我們只能看到我們撰寫的Java規范代碼是由作業系統執行的!
我們說,在JVM識別位元組碼檔案后,它將位元組碼指令翻譯成作業系統,從而控制作業系統執行相應的功能,因此,當談到翻譯時,我們必須簡要介紹JVM翻譯位元組碼檔案的方式和方法,JVM有兩種常見的方法來翻譯位元組碼,一種是即時加載方法,一種是解釋和執行,解釋執行是將位元組碼檔案中的操作碼和運算元轉換為操作指令,即機器碼,即時加載是在特定情況下觸發的,它是在位元組碼轉換成機器碼后執行的,如果你想知道位元組碼檔案包含什么,當我通過JVM時,我會添加你的朋友,我會與你自由交談!盡管它將不得不等到年底
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/440978.html
標籤:Java
