Stay Hungry Stay Foolish

Java平台的无关性

Posted on By Jun Xi Gu

本文是对Java平台无关性的汇总和个人理解,此处的内容是针对旧版的Java


Java平台的不同版本体现其 平台无关性 和 伸缩性

不同版本间支持的API集合不同

  • J2EE:适合作为高端性能的服务器上的Java平台
  • J2SE:适合作为浏览器上或桌面应用上的Java平台
  • J2ME:适合作为资源高度受限的嵌入式设备上的Java平台

影响Java程序的平台无关性的一些因素

  • 所针对的硬件平台是否已经存在相应的Java平台实现
  • Java程序使用的API集合在网路中的不同节点的Java平台是否存在
  • Java平台的版本改变后对原有程序使用的API的影响
  • Java程序是否使用了本地方法
  • Java程序是否使用了某些硬件平台厂商提供的特定扩展库
  • Java程序是否依赖特定Java平台的实现(及时终结,线程的优先级)
  • 对用户界面的依赖
  • Java平台中的bug
  • 不同Java平台不同实现导致的功能,性能不一致

开发平台无关的Java程序的步骤

  • 选定要运行的主机和设备集合
  • 选定一个足够好的Java平台
  • 对每个目标主机和设备选定一个Java平台实现
  • 编写程序时只使用标准的API
  • 编写程序时不要依赖及时终结和线程优先级
  • 努力设计一个能在每个平台正常运行的界面
  • 在所有目标主机和设备上测试

是否选择平台无关需要考虑性能,功能等各种因素