为什么需要平台无关性?
- 设备多样化,可以不加修改地运行。
- 设备连网化,平台无关性,使得不同平台之间可以无缝地交换对象。比如,使用JINI技术
- 减少针对多平台开发的难度和工作量。
对平台无关性的支持
Java平台
扮演着Java程序跟操作系统的缓冲角色,使得程序无需直接跟特定平台打交道
Java语言
基本类型的值域跟行为都是自己的规范,跟平台无关
class文件
特定于JVM的二进制格式,与平台无关,如字节序等
可伸缩性
Java平台可在不同的设备上实现,包括PC、嵌入式设备等。可根据不同的设备进行适当的裁剪,但要符合规范定义的功能子集。
影响平台无关性的因素
Java平台的部署
目标平台是否有相关的Java平台实现
Java平台的版本
- 各版本间的兼容性问题
- 不同的功能子集的问题
- 不同厂商针对特定平台的扩展功能问题
本地方法
- 非标准运行时库
- 对JVM行为的依赖
- 不要依赖对象的finalization行为
- 不要依赖线程优先级
- 对用户界面的依赖
- Java平台的Bug 如果目标平台集中有一个实现有Bug,会导致其他平台此功能不可使用。需要多测试。