日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JAVA跨平臺(tái)原理

 印度阿三17 2020-02-07

JAVA的核心機(jī)制有兩個(gè):跨平臺(tái)機(jī)制(JAVA虛擬機(jī)),垃圾回收機(jī)制

跨平臺(tái)機(jī)制實(shí)現(xiàn)了:一次編譯,到處運(yùn)行

       ?。ㄅcC語(yǔ)言的跨平臺(tái)區(qū)別在于:C語(yǔ)言是多次編譯多次運(yùn)行,

         而這里所指的跨平臺(tái)是指編譯后的文件跨平臺(tái))

垃圾回收機(jī)制實(shí)現(xiàn)了:自動(dòng)回收內(nèi)存,即無(wú)需程序員手動(dòng)內(nèi)存回收,避免忘記回收,造成內(nèi)存泄漏

JAVA跨平臺(tái)原理

 在JAVA中,執(zhí)行一段寫好的代碼會(huì)經(jīng)過(guò)編譯和解釋兩個(gè)過(guò)程:

編譯 Compile:把整個(gè)程序源代碼翻譯成另外一種代碼,然后等待被執(zhí)行,發(fā)生在運(yùn)行之前,產(chǎn)物是「另一份代碼」。
解釋 Interpret:把程序源代碼一行一行的讀懂然后執(zhí)行,發(fā)生在運(yùn)行時(shí),產(chǎn)物是「運(yùn)行結(jié)果」。

編譯:通過(guò)編譯器將.java文件(源文件)編譯成.class字節(jié)碼文件(二進(jìn)制文件),

    編譯器即javac.exe,實(shí)際上也是運(yùn)行其背后的代碼

解釋(執(zhí)行):通過(guò)解釋器將.class文件轉(zhuǎn)換為對(duì)應(yīng)操作系統(tǒng)可以識(shí)別的執(zhí)行文件格式,

        即當(dāng)前平臺(tái)認(rèn)識(shí)的機(jī)器碼然后執(zhí)行,解釋器即java.exe。

  注:表面上調(diào)用的是java.exe命令,實(shí)際上起作用的是虛擬機(jī)。

    底層動(dòng)態(tài)調(diào)用虛擬機(jī)(JVM程序),

    JVM再將.class字節(jié)碼文件解釋為當(dāng)前平臺(tái)認(rèn)識(shí)的機(jī)器碼并執(zhí)行。

    虛擬機(jī)和解釋器的關(guān)系:解釋器是虛擬機(jī)的一個(gè)重要的組成部分。

通過(guò)不同的JVM,JAVA代碼實(shí)現(xiàn)了在不同操作系統(tǒng)上的運(yùn)行,即跨平臺(tái)機(jī)制。

JAVA的跨平臺(tái)是:一次編譯,到處運(yùn)行。

C語(yǔ)言的跨平臺(tái)原理則是,直接編譯執(zhí)行為當(dāng)前操作系統(tǒng)的機(jī)器碼,這樣也實(shí)現(xiàn)了不同操作系統(tǒng)上運(yùn)行的效果。

即C語(yǔ)言源文件是跨平臺(tái)的,但其編譯后的文件無(wú)法跨平臺(tái)使用,顯而易見,因?yàn)镃語(yǔ)言是多次編譯多次運(yùn)行。

因此,如果跨平臺(tái)單指編譯后的文件跨平臺(tái),那么JAVA是跨平臺(tái)語(yǔ)言,而C語(yǔ)言不算。

如下圖所示:

來(lái)源:https://www./content-1-634251.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多