您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)Java語言跨平臺(tái)的原理是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
通過Java語言編寫的應(yīng)用程序在不同的操作系統(tǒng)都能夠運(yùn)行,例如windows,Linux,Mac。
java程序的跨平臺(tái)主要是指字節(jié)碼文件可以在任何具有JVM的計(jì)算機(jī)和電子設(shè)備上運(yùn) 行,Java虛擬機(jī)中的java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成特定的機(jī)器碼進(jìn)行運(yùn)行。
Java語言本質(zhì)上是不能跨平臺(tái)的,真正實(shí)現(xiàn)跨平臺(tái)的是JVM,也就是Java虛擬機(jī)。寫好的Java源文件通過Javac命令編譯生成class文件(中間文件),然后JVM對(duì)class文件進(jìn)行執(zhí)行生成機(jī)器語言然后機(jī)器語言在平臺(tái)中操作,Java在不同的平臺(tái)下都有對(duì)應(yīng)的不同版本的JVM,JVM可以識(shí)別字節(jié)碼文件從而運(yùn)行。
一次編譯到處運(yùn)行。高級(jí)語言如果要在不同的平臺(tái)上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼。而Java語言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編譯。Java語言使用Java虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息使得Java語言編譯程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼就可以在多種平臺(tái)上不加修改地運(yùn)行。Java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí)把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。
(1)java語言比較安全
Java取消了強(qiáng)大但又危險(xiǎn)的指針。由于指針可進(jìn)行移動(dòng)運(yùn)算,指針可隨便指向一個(gè)內(nèi)存區(qū)域,而不管這個(gè)區(qū)域是否可用這樣做是危險(xiǎn)的,因?yàn)樵瓉磉@個(gè)內(nèi)存地址可能存儲(chǔ)著重要數(shù)據(jù)或者是其他程序運(yùn)行所占用,且使用指針也容易數(shù)組越界;
(2)Java提供了自動(dòng)內(nèi)存管理機(jī)制,由垃圾回收器在后臺(tái)自動(dòng)回收;
(3)Java在字節(jié)碼的傳輸過程中使用了公開密鑰加密機(jī)制(PKC);
(4)而在運(yùn)行環(huán)境提供了四級(jí)安全性保障機(jī)制:字節(jié)碼校驗(yàn)器 -類裝載器 -運(yùn)行時(shí)內(nèi)存布局 -文件訪問限制
(1)Java和C++都是面向?qū)ο笳Z言,都能夠?qū)崿F(xiàn)面向?qū)ο笏枷?封裝,繼承,多態(tài));
(2)Java則是完全的面向?qū)ο笳Z言,句法更清晰,規(guī)模更小更易學(xué)。在對(duì)多種程序設(shè)計(jì)語言進(jìn)行了深入細(xì)致研究的基礎(chǔ)上,據(jù)棄了其他語言的不足之處,從根本上解決了c++的固有缺陷。
Java強(qiáng)制類型機(jī)制、異常處理垃圾的自動(dòng)收集等是Java程序健壯性的重要保證,對(duì)指針的丟棄是Java的明智選擇,Java安全檢查機(jī)制使得Java更具優(yōu)勢(shì)。
看完上述內(nèi)容,你們對(duì)Java語言跨平臺(tái)的原理是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。