卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java Java為什么可以在多個平臺上運(yùn)行?

Java為什么可以在多個平臺上運(yùn)行?既然在語言層面上Java要落后于C#,那為何國內(nèi)Java架構(gòu)到處都是?我認(rèn)為電子語言是世界上最好的語言jvm:java代碼是如何運(yùn)行的?一個java項目包含了很多帶

Java為什么可以在多個平臺上運(yùn)行?

既然在語言層面上Java要落后于C#,那為何國內(nèi)Java架構(gòu)到處都是?

我認(rèn)為電子語言是世界上最好的語言

jvm:java代碼是如何運(yùn)行的?

一個java項目包含了很多帶有“.”的源代碼文件。“Java”作為后綴。除了直接在IDE中調(diào)試外,一般來說,代碼類型是jar包或war包,最后打包的jar包或war包被發(fā)送到在線服務(wù)器進(jìn)行部署。

部署的方法有很多,最基本的方法是通過Tomcat容器進(jìn)行部署,也可以通過Java命令手動運(yùn)行jar包中的代碼。

。

在Java代碼打包過程中,源代碼通常被編譯成一個字節(jié)碼文件,并帶有“?!邦悺焙缶Y。JVM只能識別和解釋字節(jié)碼文件類。

對于已編譯的類字節(jié)碼,您需要使用諸如Java-jar之類的命令來運(yùn)行已編寫的代碼;一旦使用Java命令,此時您將實際啟動JVM進(jìn)程。

JVM進(jìn)程將負(fù)責(zé)運(yùn)行這些類字節(jié)碼文件,這相當(dāng)于運(yùn)行我們編寫的代碼。

要運(yùn)行這些類字節(jié)碼文件中的代碼,JVM將使用類加載器將編譯后的類字節(jié)碼文件加載到JVM的內(nèi)存中

執(zhí)行加載到內(nèi)存中的類。當(dāng)JVM需要哪個類時,它將使用類加載器來加載相應(yīng)的類。

JAVA寫好的編譯好的程序能在沒有jdk的系統(tǒng)中運(yùn)行嗎?

讓我們從結(jié)論開始:JDK可以避免,但JRE仍然需要它

!Java運(yùn)行必須依賴虛擬機(jī)(JVM)。如果希望系統(tǒng)直接運(yùn)行,則需要將其編譯為本機(jī)代碼。Java的編譯結(jié)果是一個中間產(chǎn)品,稱為字節(jié)碼。如果您需要執(zhí)行,您需要通過JVM的JIT將字節(jié)碼轉(zhuǎn)換為本機(jī)代碼,然后系統(tǒng)才能執(zhí)行它

!所以JVM是必要的,JDK是一個開發(fā)工具,JRE是Java提供的API庫。寫一個程序肯定會用到JRE中的東西,所以JRE已經(jīng)成為必須的了!但JDK不一定非得這么做

!在Java世界,我還沒有發(fā)現(xiàn)任何類似C#mono的AOT編譯器工具(直接編譯指定系統(tǒng)平臺的本機(jī)代碼,這與JIT不同),所以直接執(zhí)行它還是有點(diǎn)問題