路边飞的博客

直面血淋淋、湿漉漉、暖洋洋的程序人生

JVM平台无关性-笔记

| Comments

为什么需要平台无关性?

  1. 设备多样化,可以不加修改地运行。
  2. 设备连网化,平台无关性,使得不同平台之间可以无缝地交换对象。比如,使用JINI技术
  3. 减少针对多平台开发的难度和工作量。

对平台无关性的支持

  1. Java平台

    扮演着Java程序跟操作系统的缓冲角色,使得程序无需直接跟特定平台打交道

  2. Java语言

    基本类型的值域跟行为都是自己的规范,跟平台无关

  3. class文件

    特定于JVM的二进制格式,与平台无关,如字节序等

  4. 可伸缩性

    Java平台可在不同的设备上实现,包括PC、嵌入式设备等。可根据不同的设备进行适当的裁剪,但要符合规范定义的功能子集。

影响平台无关性的因素

  1. Java平台的部署

    目标平台是否有相关的Java平台实现

  2. Java平台的版本

    • 各版本间的兼容性问题
    • 不同的功能子集的问题
    • 不同厂商针对特定平台的扩展功能问题
  3. 本地方法

  4. 非标准运行时库
  5. 对JVM行为的依赖
    • 不要依赖对象的finalization行为
    • 不要依赖线程优先级
  6. 对用户界面的依赖
  7. Java平台的Bug 如果目标平台集中有一个实现有Bug,会导致其他平台此功能不可使用。需要多测试。

Comments