千家信息网

Java如何支持平台无关性

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,小编给大家分享一下Java如何支持平台无关性,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么Java要支持平台无关性众
千家信息网最后更新 2025年11月11日Java如何支持平台无关性

小编给大家分享一下Java如何支持平台无关性,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

为什么Java要支持平台无关性

众所周知,Java是平台无关的语言,那么Java为什么要支持平台无关性,总结一下,有如下几点

  1. 支持多变的网络环境。如今是一个互联网的时代,网络将各种各样的计算机和设备连接起来,比如网络连接了windows的PC机,UNIX工作站等等。为了保证程序能够不加任何修改运行于网络上的任何计算机,而不管计算机是什么种类,什么平台,这样就极大减轻了系统管理员的工作。尤其是程序是通过网络环境进行部署的。

  2. 支持网络化嵌入式设备。目前工作场所中存在各种各样的嵌入式设备,比如打印机,扫描仪,传真机等。他们往往通过网络连接起来,甚至在家庭网络和汽车内部也存在这样那样的嵌入式设备 。Java的平台无关性可以简化这样的系统管理任务。无论是哪个网络的管理员,它只需关注程序本身即可。此外添加一台新设备,可以立即被其他设备访问到,也可以访问其他设备。这都是平台无关性带来的好处。

  3. 减少开发者部署程序的成本和时间。

对于开发者而言, Java平台无关的能力给予网络一个同构的运行环境,使得分布式系统可以围绕着"网络移动对象"开构建。比如对象序列化,RMI, Jini就是利用平台无关性。把面向对象编程从虚拟机带到了网络上。

Java如何支持平台无关性

Java从四个方面支持了平台无关性

  1. 最主要的是Java平台本身。Java平台扮演Java程序和所在的硬件与操作系统之间的缓冲角色。这样Java程序只需要与Java平台打交道,而不用管具体的操作系统。

  2. Java语言保证了基本数据类型的值域和行为都是由语言自己定义的。而C/C++中,基本数据类是由它的占位宽度决定的,占位宽度由所在平台决定的。不同平台编译同一个C++程序会出现不同的行为。通过保证基本数据类型在所有平台的一致性,Java语言为平台无关性提供强有力的支持。

  3. Java class文件。Java程序最终会被编译成二进制class文件。class文件可以在任何平台创建,也可以被任何平台的Java虚拟机装载运行。它的格式有着严格的定义,是平台无关的。

  4. 可伸缩性。Sun通过改变API的方式得到三个基础API集合,表现为Java平台不同的伸缩性:J2EE,J2SE,J2ME。

影响Java平台无关性的因素

  1. Java平台的部署。运行Java程序之前,必须要部署好Java平台。

  2. Java平台的版本。Sun公司提供了不同的API集合,有标准版,扩展版等等。此外API本身也面临着改动,一些API被认为是过期的,一些API甚至不向下兼容,因此我们需要选择合适的Java平台版本支持程序开发。

  3. 本地方法。当编写一个平台独立的Java程序时候,最重要的原则是:不要直接或间接调用不属于Java API的本地方法。调用Java API以外的本地方法使得程序平台相关。一般而言,本地方法在三种情况适用:使用底层主机平台的特性,而Java API无法访问;为了访问老系统或者使用现有的库,但是这个系统或库不是Java编写的;为了加快程序性能,将时间敏感代码用本地方法实现。因此当必须使用本地方法,而且支持多种平台运行,必须将本地方法移植到所有需要的平台上。因此编写平台独立的Java程序做主要的目的就是完全禁止本地方法,通过Java API和主机交互。

  4. 非标准运行时库。所谓平台无关性,一种解释是你调用的方法是否在任何地方都已经实现。本地方法顾名思义,就是只是在本地实现了,所以无法保证平台无关。而Java API在如windows, Solaris等操作系统上的实现上使用了本地方法访问主机,即保证了平台无关。

  5. 对虚拟机的依赖。虚拟机可以由不同开发商开发,但是必须满足如下两条原则:不要依赖及时终结(finalization)保证程序的正确性,因为特定程序中对象可能在不同的时间被垃圾收集;不要依赖线程的优先级来保证程序的正确性。因为一些虚拟机可以实现优先级高线程优先运行,一些虚拟机不能保证这一点。

  6. 对用户界面依赖,AWT库提供基本的用户界面,这些组件被映射成每个平台上的本地组件,而Swing库为用户提供更高级的组件,但并没有被映射为本地组件。

实现平台无关的7大步骤

  1. 选择程序运行的主机和设备集合(目标宿主机)

  2. 在目标宿主机中选择Java平台版本。

  3. 对于每个目标宿主机,选择程序将要运行的Java平台实现(目标运行时环境)。

  4. 编写程序,调用Java API标准运行库(不调用本地方法,或者专门开发商专门调用本地方法的库)

  5. 编写程序,不依赖于垃圾收集器收集垃圾时间,不依赖线程的优先级

  6. 努力设计用户界面,在所有的目标宿主机都能正常工作

  7. 在所有目标运行时环境和所有目标宿主机进行测试

以上是"Java如何支持平台无关性"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

平台 程序 方法 网络 运行 支持 系统 保证 目标 设备 不同 开发 宿主 宿主机 环境 主机 对象 时间 用户 组件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发文档模板人物 北京慧聪网络技术有限公司 数据库管理安全报告 安溪招聘软件开发 新乡云鼎网络技术有限公司 广东省文明城市网络安全 信息安全技术计算机网络安全 数据库表怎么说明书 信息网络安全是一级期刊 共用数据库安全性 软件开发费用 知乎 寝室网络安全管理制度 重庆永川食堂配送软件开发 汽车自动气候控制软件开发多少钱 饥荒联机版好友进不去我的服务器 海康ds-vm21s-b服务器 aps应用软件开发教学视频 组图软件开发 德国大众防盗服务器什么时候开通 动态读取数据库 个人能代开软件开发费吗 网络技术和数据库三级 2k22显示服务器不可用怎么办 不履行网络安全义务怎么处理 北京宝库在线网络技术官网 VHD电视墙服务器 软件测试软件开发区别 华亭县网络安全和信息化工作会议 吉林机电软件开发价格走势 数据库如何插入字母
0