第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JDK是“向上”還是“向后”兼容?

JDK是“向上”還是“向后”兼容?

動(dòng)漫人物 2019-11-30 14:31:58
向后二進(jìn)制兼容性(或向下兼容性)-使用舊版本的庫(kù)API構(gòu)建的客戶端可以在新版本上運(yùn)行的能力(wiki)。向上二進(jìn)制兼容性(或向前兼容性)-使用新版本的庫(kù)API構(gòu)建的客戶端可以在舊版本上運(yùn)行的能力(wiki)。從1.4.2開(kāi)始, Sun關(guān)于J2SE 5.0中 JDK 不兼容性的一般文檔(以及Java SE 6與J2SE 5.0的兼容性)也描述了JDK的兼容性,如下所示:JDK 5.0 向上與Java 2 SDK v1.4.2二進(jìn)制兼容,除了下面列出的不兼容之處。這意味著,除了指出的不兼容性外,使用1.4.2版編譯器構(gòu)建的類文件將在JDK 5.0中正確運(yùn)行。我想文檔編寫(xiě)者在這句話中混淆了 “向上”和“向后”兼容性的術(shù)語(yǔ)。它們描述了“向后”兼容性,但稱此功能為“向上”兼容性。這是錯(cuò)字,錯(cuò)誤還是預(yù)定用語(yǔ)?JDK是“向上”還是“向后”兼容?
查看完整描述

3 回答

?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊

請(qǐng)注意,要使某些東西向后兼容,必須有一個(gè)對(duì)等兼容的對(duì)象(有意或無(wú)意)。例如:DVD閱讀器向后兼容CD還是CD向前兼容DVD閱讀器?

在這種情況下,取決于您查看的是編譯器(或其生成的字節(jié)碼)還是虛擬機(jī)。

編譯器不向后兼容,因?yàn)槭褂肑ava5 JDK生成的字節(jié)碼將無(wú)法在Java 1.4 jvm中運(yùn)行(除非使用該-target 1.4標(biāo)志進(jìn)行編譯)。但是JVM是向后兼容的,因?yàn)樗梢赃\(yùn)行舊的字節(jié)碼。

因此,我想他們選擇從Javac的角度考慮兼容性(因?yàn)樗荍DK的特定部分),這意味著生成的字節(jié)碼可以在jvm的未來(lái)版本中運(yùn)行(與JRE更相關(guān)) ,也捆綁在JDK中)。

簡(jiǎn)而言之,我們可以說(shuō):

  • JDK(通常)是向前兼容的。

  • JRE(通常)是向后兼容的。

(這也是一個(gè)應(yīng)該在很久以前學(xué)習(xí)的課程:編寫(xiě)編譯器的人通常是正確的,而我們使用它們的人是錯(cuò)誤的xD)

順便說(shuō)一句,將向后/向前和向下/向上配對(duì)而不是將它們混合起來(lái)更有意義嗎?


查看完整回答
反對(duì) 回復(fù) 2019-11-30
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

擴(kuò)展答案以包括最新的Java…


Java SE 7和JDK 7的兼容性

Oracle的未注明日期頁(yè)面的引言:


兼容性是一個(gè)復(fù)雜的問(wèn)題。本文檔討論了與Java平臺(tái)的發(fā)行有關(guān)的三種潛在的不兼容性:


源:源兼容性涉及將Java源代碼轉(zhuǎn)換為類文件,包括代碼是否仍在編譯。

二進(jìn)制:二進(jìn)制兼容性在Java語(yǔ)言規(guī)范中定義為保留無(wú)錯(cuò)誤鏈接的能力。

行為:行為兼容性包括在運(yùn)行時(shí)執(zhí)行的代碼的語(yǔ)義。

…和


Java SE 7和Java SE 6之間的不兼容性Java SE 7與 Java平臺(tái)的早期版本高度兼容。幾乎所有現(xiàn)有程序都應(yīng)在Java SE 7上運(yùn)行,而無(wú)需進(jìn)行任何修改。但是,在JRE和JDK中存在一些較小的潛在來(lái)源和二進(jìn)制不兼容問(wèn)題,這些情況涉及極少數(shù)情況和“角落情況”,此處出于完整性目的對(duì)其進(jìn)行了記錄。


Java SE 7在語(yǔ)言,JVM或Java SE API中的不兼容性


…和


JDK 7和JDK 6之間的不兼容性

Javac,HotSpot或Java SE API中的JDK 7不兼容


(那里沒(méi)有序言–只是不兼容的列表。)


查看完整回答
反對(duì) 回復(fù) 2019-11-30
?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

僅向后。前向兼容(“優(yōu)雅地接受打算供其自身更高版本使用的輸入”)將要求1.5 JVM能夠運(yùn)行1.6編譯的代碼,而這不能。

向后要求“如果它可以使用較舊設(shè)備生成的輸入”,這是正確的,因?yàn)?.6 JVM可以運(yùn)行1.5編譯代碼。

JDK / JRE的每個(gè)發(fā)行版都與Java字節(jié)碼的版本一致。每個(gè)編譯器都會(huì)生成特定字節(jié)碼版本的代碼。每個(gè)JVM都了解特定字節(jié)碼版本的版本和所有較早版本。

當(dāng)JVM加載一個(gè)類時(shí),它會(huì)檢查字節(jié)碼版本,如果它大于JVM最新理解的版本,則會(huì)收到錯(cuò)誤消息。(ClassVersionError之類的)。


查看完整回答
反對(duì) 回復(fù) 2019-11-30
  • 3 回答
  • 0 關(guān)注
  • 1738 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)