国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

為什么程序員不應(yīng)調(diào)用“sun”包

2019-11-18 13:42:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  為什么程序員不應(yīng)調(diào)用“sun”包

J2SE API Documents是我們最常用的參考手冊(cè),但細(xì)心的朋友可能會(huì)發(fā)現(xiàn),在“%java_HOME%/jre/lib/rt.jar”中包含比API文檔更多的類,那么其它的類為什么沒有在幫助文檔中出現(xiàn)呢?在SUN的JDK FAQ中有一篇“Why Developers Should Not Write PRograms That Call ´sun´ Packages”,該文部分地解答了這個(gè)問題,我將原文翻譯如下

================================================================================

J2SE中的類大致可以劃分為以下的各個(gè)包:
java.*,javax.*,org.*,sun.*
除了“sun”包,其它各個(gè)包都是Java平臺(tái)的標(biāo)準(zhǔn)實(shí)現(xiàn),并且今后也將被繼續(xù)支持。一般說(shuō)來(lái),“sun”之類的包并不包含在Java平臺(tái)的標(biāo)準(zhǔn)中,它與操作系統(tǒng)相關(guān),在不同的操作系統(tǒng)(如Solaris,Windows,linux,Mac等等)中的實(shí)現(xiàn)也各不相同,并且可能隨著J2SE版本不定期變化。因此,直接調(diào)用“sun”包的程序代碼并不是100%的Java實(shí)現(xiàn)。

也就是說(shuō):
“java.*”包,“javax.*”包,“org.*”包是作為J2SE的API公開接口的一部分,假如程序直接調(diào)用這些包中的API,那么程序是可以運(yùn)行在所有Java平臺(tái)上,而與操作系統(tǒng)無(wú)關(guān);但“sun.*”包并不是API公開接口的一部分,調(diào)用“sun”包的程序并不能確保工作在所有Java平臺(tái)上,事實(shí)上,這樣的程序并不能工作在今后的Java平臺(tái)上。
正因?yàn)槿绱耍皊un.*”包中的類并沒有提供API文檔。平臺(tái)無(wú)關(guān)性是Java語(yǔ)言最大的優(yōu)勢(shì)之一,此外,SUN和Java許可證確保維持了今后API的向上兼容性(以后修改的那些有嚴(yán)重bug的代碼除外)。這種兼容性意味著你寫好的程序編譯成的cl ass文件仍然可以工作在將來(lái)的版本當(dāng)中。

每家實(shí)現(xiàn)Java平臺(tái)的廠商都可以使用他們自己的方式。“sun.*”包中的類是SUN 對(duì)Java平臺(tái)的實(shí)現(xiàn)方式,它們工作在Java 2 SDK的下層,這些類未必被其它Java 平臺(tái)開發(fā)商支持。比如你的Java程序假如調(diào)用了一個(gè)名為“sun.package.Foo”的類,將有可能產(chǎn)生“ClassNotFoundError”的錯(cuò)誤,同時(shí)你也將失去利用Java的一個(gè)主要的優(yōu)點(diǎn)。

從技術(shù)上講,并不能防止你的程序調(diào)用“sun.*”包中的類。在版本的變遷當(dāng)中,這些類可能會(huì)被刪除或轉(zhuǎn)移到其它包路徑下,而且它的接口(包括名稱、標(biāo)簽等)也很有可能發(fā)生變化,(根據(jù)SUN的觀點(diǎn),我們應(yīng)當(dāng)能夠通過(guò)對(duì)“sun.*”包的修改來(lái)提高Java平臺(tái)的性能。)在這種情況下,即便你希望程序僅僅運(yùn)行在SUN的實(shí)現(xiàn)平臺(tái)下,你仍將承受新的版本給你的系統(tǒng)帶來(lái)破壞的風(fēng)險(xiǎn)。總之,編寫依靠于“sun.*”包的Java程序是不安全的,他們將變得無(wú)法移植,無(wú)法被很好地支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 思南县| 江永县| 桂阳县| 南部县| 交口县| 浦城县| 云阳县| 靖远县| 蓝田县| 敖汉旗| 淳安县| 绵阳市| 夏河县| 杨浦区| 额尔古纳市| 衡阳市| 崇左市| 衡南县| 琼中| 申扎县| 乐业县| 阳曲县| 赫章县| 山丹县| 漾濞| 嘉兴市| 琼海市| 高安市| 宜城市| 县级市| 武隆县| 凤凰县| 丹江口市| 岳西县| 承德县| 元谋县| 广西| 建湖县| 新干县| 惠来县| 麦盖提县|