平台无关

1.java的体系结构对平台无关的支持

  1. java平台(java虚拟机及javaAPI):java程序只需要与java平台交互,不需要担心底层硬件和操作系统
  2. java语言:基本类型的值域和行为都是由语言自己定义的,C和C++的值域由占位宽提供,占位宽由目标平台决定
  3. java class文件:可以在任何平台创建,也可以在任何平台被装载,它的格式如高位优先等有明确规定
  4. 可伸缩性:除了J2SE,对不同的低端,微型版,嵌入式等定义各自的子集(profile),组成J2ME;针对企业服务,定义一个API超集,除了标准api,包括servlet,javabean等企业常用的服务,为J2EE

2.影响平台无关性的因素

  1. java平台的部署和版本:有些过时的特性在java平台的新版本中被删除了,针对java新版本编写的程序不一定能在老版本运行
  2. 本地方法:调用java API以外的本地方法将使程序平台相关
  3. 对虚拟机的依赖:平台相关需遵循两个原则:不要依赖即时终结(finalization)(在对象被释放以前由垃圾收集器运行的finalizer,在不同的虚拟机可能在不同的时间运行);不要依赖线程优先级(只能保证最高优先级的线程可以得到一些CPU时间,没有禁止较低优先级线程的运行),必须依赖同步来保证线程之间协调相互间的动作
原文地址:https://www.cnblogs.com/qilong853/p/6520053.html