零基礎(chǔ)java自學(xué)教程 Java程序到底是如何運(yùn)行的?
Java程序到底是如何運(yùn)行的?Java程序的運(yùn)行得益于JVM虛擬機(jī)用C語言編譯的程序?qū)⑼ㄟ^編譯器編譯成exe文件,然后將exe可執(zhí)行文件交給windows系統(tǒng)運(yùn)行。為什么不問問exe文件是如何運(yùn)行的?
Java程序到底是如何運(yùn)行的?
Java程序的運(yùn)行得益于JVM虛擬機(jī)
用C語言編譯的程序?qū)⑼ㄟ^編譯器編譯成exe文件,然后將exe可執(zhí)行文件交給windows系統(tǒng)運(yùn)行。為什么不問問exe文件是如何運(yùn)行的?可能是因?yàn)檫@已經(jīng)是常識(shí)了
Java程序的運(yùn)行和exe文件的運(yùn)行是相似的,Java程序會(huì)先編譯成類文件,然后將類文件送到JVM中運(yùn)行。JVM在操作系統(tǒng)上運(yùn)行。JVM就像Java程序和操作系統(tǒng)之間的轉(zhuǎn)換器,將Java代碼翻譯成操作系統(tǒng)來執(zhí)行。
同時(shí),由于Java程序在虛擬機(jī)上運(yùn)行,所以虛擬機(jī)可以處理Java程序,比如內(nèi)存回收。在虛擬機(jī)中,內(nèi)存又分為堆、棧、方法區(qū)等,便于堆內(nèi)存管理
與Java類似,所有解釋語言都不能直接與操作系統(tǒng)通信,中間還有一個(gè)翻譯器的角色,如python、PHP等