Java語(yǔ)言跨平臺(tái)原理是什么?有哪些優(yōu)勢(shì)?
Java語(yǔ)言目前很流行和Java很多優(yōu)點(diǎn)分不開而Java的最大優(yōu)點(diǎn)是就是跨平臺(tái)。Java跨平臺(tái)可以使用8個(gè)字概括:一次編譯到處運(yùn)行。
1、Java語(yǔ)言跨平臺(tái)性
通過Java語(yǔ)言編寫的應(yīng)用程序在不同的操作系統(tǒng)都能夠運(yùn)行,例如windows,Linux,Mac。
2、Java實(shí)現(xiàn)跨平臺(tái)原理
java程序的跨平臺(tái)主要是指字節(jié)碼文件可以在任何具有JVM的計(jì)算機(jī)和電子設(shè)備上運(yùn) 行,Java虛擬機(jī)中的java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成特定的機(jī)器碼進(jìn)行運(yùn)行。
Java語(yǔ)言本質(zhì)上是不能跨平臺(tái)的,真正實(shí)現(xiàn)跨平臺(tái)的是JVM,也就是Java虛擬機(jī)。寫好的Java源文件通過Javac命令編譯生成class文件(中間文件),然后JVM對(duì)class文件進(jìn)行執(zhí)行生成機(jī)器語(yǔ)言然后機(jī)器語(yǔ)言在平臺(tái)中操作,Java在不同的平臺(tái)下都有對(duì)應(yīng)的不同版本的JVM,JVM可以識(shí)別字節(jié)碼文件從而運(yùn)行。
3、Java語(yǔ)言跨平臺(tái)的好處
一次編譯到處運(yùn)行。高級(jí)語(yǔ)言如果要在不同的平臺(tái)上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼。而Java語(yǔ)言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編譯。Java語(yǔ)言使用Java虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息使得Java語(yǔ)言編譯程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼就可以在多種平臺(tái)上不加修改地運(yùn)行。Java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí)把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。
4、Java語(yǔ)言特點(diǎn)
(1)java語(yǔ)言比較安全
Java取消了強(qiáng)大但又危險(xiǎn)的指針。由于指針可進(jìn)行移動(dòng)運(yùn)算,指針可隨便指向一個(gè)內(nèi)存區(qū)域,而不管這個(gè)區(qū)域是否可用這樣做是危險(xiǎn)的,因?yàn)樵瓉?lái)這個(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)存布局 -文件訪問限制
5、Java語(yǔ)言是完全面向?qū)ο?/h3>
(1)Java和C++都是面向?qū)ο笳Z(yǔ)言,都能夠?qū)崿F(xiàn)面向?qū)ο笏枷?封裝,繼承,多態(tài));
(2)Java則是完全的面向?qū)ο笳Z(yǔ)言,句法更清晰,規(guī)模更小更易學(xué)。在對(duì)多種程序設(shè)計(jì)語(yǔ)言進(jìn)行了深入細(xì)致研究的基礎(chǔ)上,據(jù)棄了其他語(yǔ)言的不足之處,從根本上解決了c++的固有缺陷。
Java強(qiáng)制類型機(jī)制、異常處理垃圾的自動(dòng)收集等是Java程序健壯性的重要保證,對(duì)指針的丟棄是Java的明智選擇,Java安全檢查機(jī)制使得Java更具優(yōu)勢(shì)。