电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

为什么程序员不应调用“SUN”包?


发布日期:2018/10/5
 

JSE中的类大致可以划分为以下的各个包

java*javax*org*sun*

除了sun其它各个包都是Java平台的标准实现并且今后也将被继续支持一般说来sun之类的包并不包含在Java平台的标准中它与操作系统相关在不同的操作系统(如SolarisWindowsLinuxMac等等)中的实现也各不相同并且可能随着JSE版本不定期变化因此直接调用sun包的程序代码并不是%的Java实现也就是说

java*javax*org*包是作为JSE的API公开接口的一部分如果程序直接调用这些包中的API那么程序是可以运行在所有Java平台上而与操作系统无关sun*包并不是API公开接口的一部分调用sun包的程序并不能确保工作在所有Java平台上事实上这样的程序并不能工作在今后的Java平台上

正因为如此sun*包中的类并没有提供API文档平台无关性是Java语言最大的优势之一此外SUN和Java许可证确保维持了今后API的向上兼容性(以后修改的那些有严重bug的代码除外)这种兼容性意味着你写好的程序编译成的cl ass文件仍然可以工作在将来的版本当中

每家实现Java平台的厂商都可以使用他们自己的方式sun*包中的类是SUN 对Java平台的实现方式它们工作在Java SDK的下层这些类未必被其它Java 平台开发商支持比如你的Java程序如果调用了一个名为sunpackageFoo的类将有可能产生ClassNotFoundError的错误同时你也将失去利用Java的一个主要的优点

从技术上讲并不能防止你的程序调用sun*包中的类在版本的变迁当中这些类可能会被删除或转移到其它包路径下而且它的接口(包括名称标签等)也很有可能发生变化(根据SUN的观点我们应当能够通过对sun*包的修改来提高Java平台的性能)在这种情况下即便你希望程序仅仅运行在SUN的实现平台下你仍将承受新的版本给你的系统带来破坏的风险总之编写依赖于sun*包的Java程序是不安全的他们将变得无法移植无法被很好地支持

上一篇:万年历程序源码

下一篇:Portlet开发入门实例