日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java的“跨平台”特性

發(fā)布時間:2023/12/20 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java的“跨平台”特性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

標(biāo)題 ##Java的“跨平臺”特性

言下之意,C、C++是不具備“跨平臺”特性的(嚴(yán)格來說,也不是這么回事)。那為什么呢?想想。

先解釋一下: “跨平臺”。這里的“平臺”就是指我們常用的操作系統(tǒng),如Windows/Linux/Mac。“跨平臺”就是指能在不同的平臺上使用。

Java“跨平臺”特性的實現(xiàn)原理如下:.java文件,經(jīng)過Java編譯器編譯,形成字節(jié)碼文件——.class,這種.class文件可以運行在JVM上,而JVM可以被安裝到不同的平臺,這就帶來了Java的跨平臺特性。

應(yīng)當(dāng)說明的是:.class文件這種字節(jié)碼文件,基于Unicode的字節(jié)碼是不依賴于特定的計算機硬件架構(gòu),不是嚴(yán)格的二進制文件,而.cpp文件經(jīng)過C++編譯器編譯后,形成的.obj文件,是一種純二進制的機器指令。

其實Java、C/C++都是具有跨平臺的特性,需要看這個“跨平臺”,你如何理解?

C/C++語言本身是跨平臺的,這是從“源碼編譯”的角度來看,但其應(yīng)用程序.exe不是。比如:你的C/C++程序只使用C標(biāo)準(zhǔn)的輸入輸出,那么源代碼也是跨平臺的,只要用對應(yīng)平臺的編譯器編譯就可以運行,如果你使用了平臺專有的API,那么它就不能跨平臺,比如WINDOWS窗口程序,就調(diào)用了WINDOWS的創(chuàng)建窗口,顯示窗口等API(這些調(diào)用并不一定在你自己的代碼中),Linux是沒有這些API的,所以就無法編譯更無法運行。標(biāo)準(zhǔn)的C/C++本身都是硬件無關(guān)的,但是標(biāo)準(zhǔn)C/C++往往不夠用, 于是一些人就會直接用Linux或windows的C/C++接口,這樣做不符合現(xiàn)代設(shè)計模式,導(dǎo)致程序脆弱,跨平臺就更別提了,正確的做法應(yīng)當(dāng)是用C/C++調(diào)用跨平臺庫,由跨平臺庫承擔(dān)處理平臺差異的細節(jié)。

C++創(chuàng)始人曾經(jīng)這樣說:“JVM造了一個新的平臺,讓所有Java程序只能在這個平臺上運行,而C和C++的代碼可以在幾十個不同的平臺上運行,從這個角度而言,C和C++是才是真的跨平臺的,而Java不是。”當(dāng)然,你也可以認(rèn)為,Java的確只是在其唯一的平臺上——JVM上運行的。

正所謂:C語言是“一次編寫,到處編譯”;Java是“一次編譯,到處運行”。

注:以上說得有點亂,其實大部分都是自己整合別人的經(jīng)驗而來,主要是自己理解不夠的原因,目的是為了通俗地說明問題。

總結(jié)

以上是生活随笔為你收集整理的Java的“跨平台”特性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。