java的跨平台性,它之所以能够跨平台其实就是靠JVM。
java平台扮演的始终是一个缓存角色,它介于程序与系统的中间。(Java平台:JavaSE,JavaEE,JavaME决定java体系结构)
主要影响平台无关的因数:
java平台部署
只有拥有java平台的设备才能运行。由已有的java平台实现和发布的版本决定。
Java的平台版本
并非所以的 标准运行时库在java平台上都是可用的。每个平台实现的API是不同的。
本地方法
除了平台版本外还有一个重要的因素是你是否调用的了本地方法。(用C++来代替java代码)所以尽量避免直接或者间接调用本地方法。
如图:
对虚拟机的依赖
在编写java程序时必须准从两个原则.1 不要依赖及时终结来达到程序的正确性。2不要依赖线程的优先级来达到程序的正确性。
这两条准则可以防止java虚拟机规范中的垃圾收集和线程在不同实现中的变化所带来的不利影响。
界面的依赖
java 提供用户界面组件集,这些组建衍射到平台的本地组建。