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

首頁 > 學院 > 開發(fā)設計 > 正文

為什么程序員不應調用“sun”包?

2019-11-18 11:35:09
字體:
來源:轉載
供稿:網友

J2SEAPIDocuments是我們最常用的參考手冊,但細心的朋友可能會發(fā)現(xiàn),在“%java_HOME%/jre/lib/rt.jar”中包含比API文檔更多的類,那么其它的類為什么沒有在幫助文檔中出現(xiàn)呢?在SUN的JDKFAQ中有一篇“WhyDevelopersshouldNotWrite翻譯如下

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

J2SE中的類大致可以劃分為以下的各個包:

java.*,javax.*,org.*,sun.*

除了“sun”包,其它各個包都是Java平臺的標準實現(xiàn),并且今后也將被繼續(xù)支持。一般說來,“sun”之類的包并不包含在Java平臺的標準中,它與操作系統(tǒng)相關,在不同的操作系統(tǒng)(如Solaris,Windows,linux,Mac等等)中的實現(xiàn)也各不相同,并且可能隨著J2SE版本不定期變化。因此,直接調用“sun”包的程序代碼并不是100%的Java實現(xiàn)。也就是說:

“java.*”包,“javax.*”包,“org.*”包是作為J2SE的API公開接口的一部分,假如程序直接調用這些包中的API,那么程序是可以運行在所有Java平臺上,而與操作系統(tǒng)無關;但“sun.*”包并不是API公開接口的一部分,調用“sun”包的程序并不能確保工作在所有Java平臺上,事實上,這樣的程序并不能工作在今后的Java平臺上。

正因為如此,“sun.*”包中的類并沒有提供API文檔。平臺無關性是Java語言最大的優(yōu)勢之一,此外,SUN和Java許可證確保維持了今后API的向上兼容性(以后修改的那些有嚴重bug的代碼除外)。這種兼容性意味著你寫好的程序編譯成的class文件仍然可以工作在將來的版本當中。

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 十堰市| 蒙自县| 祁门县| 青田县| 东乡县| 中西区| 黄石市| 沈丘县| 谢通门县| 济南市| 彰武县| 永靖县| 临海市| 广州市| 色达县| 柯坪县| 牟定县| 政和县| 酉阳| 武鸣县| 井陉县| 宜阳县| 陆良县| 洛阳市| 若羌县| 闽清县| 繁昌县| 淮安市| 聊城市| 肥城市| 海安县| 北辰区| 许昌县| 伊金霍洛旗| 琼海市| 邯郸市| 宝山区| 铜鼓县| 太谷县| 大城县| 体育|