java的平台无关性

java的体系结构很适合开发网络环境下的软件,平台无关性可以说是网络环境下高质量软件的精髓。一处开发,多处运行也是当前软件开发追求的目标,java的平台无关性也正是当前java语言盛行的一个重要原因。下面就从多个方面来阐述java的平台无关性。
1.为什么需要平台无关
java语言在网络环境下非常流行,java语言创建的可执行二进制程序能够不加改变地运行在多个平台。不管是随处可见的ms的windows操作系统,还是苹果操作系统,或者是商业服务器的unix系统,又或者是各开源操作系统,又或网络化的嵌入式设备,小芯片等等,都可以流畅运行打上冒着热气的咖啡杯标志的纯java程序。从我们开发者的角度来看,平台无关性节省了开发和部署多个平台软件的时间和成本。
2.java体系结构是怎么支持平台无关性
从java平台的角度讲,java程序是运行在java虚拟机上,那么只有宿主机器上安装了java虚拟机,那么就能够运行没有调用特定操作系统api的java程序。java虚拟机充当了一个宿主机操作系统之上的虚拟系统,因此只需要开发特定操作系统上的虚拟机就可以运行java程序。Java程序无论被部署到何处,只需要与java平台交互,而不用担心底层的硬件和操作系统。
从java语言本身来讲,他的数据类型的值域和行为都由其语言本身定义,而与宿主机的操作系统无关。

java平台的无关性依赖于多个因素,其中有些因素并不在开发人员控制范围之内,但是大多数都是开发人员能控制的。从根本上讲,任何java程序的平台无关性都依赖于作者怎么样来编写它。
java平台可以由很多开发商来实现。这些实现必须提供java API的标准运行时库,但是有些开发商也可能提供了其专用的库。因此要做到平台无关性,必须确认这些额外的库是否调用了系统的本地方法,或者这些本地方法是否在大多数宿主机系统上已经实现。

在编写平台独立的java程序时,还必须遵循两条原则:
1.不要依赖及时终结来达到程序的正确性。
2.不要依赖线程的优先级来达到程序的正确性。
这两条原则可以防止java虚拟机规范中允许的垃圾收集和线程在不同实现中的变化所带来的不利影响。不同的虚拟机对垃圾收集实现的方法不同,对内存空间的释放不同的方法实现他的收集时间也会不一样,垃圾收集器运行的终结方法在不同的虚拟机下的时间也会不一样,程序就会在一些虚拟机上能正常运行,而在其他一些实现的虚拟机上却不能正常运行。在一些程序实现上,可能在垃圾收集器得到机会释放资源前,有限的资源就已经消耗殆尽。同时,希望通过线程的优先级来达到程序运行的正确也是错误的,在高优先级的线程被阻塞时,低优先级的线程也会运行,及时高优先级的线程未被阻塞,低优先级线程也可能先得到CPU时间,那么必须依赖同步来协调相互之间的动作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值