标题:关于JAVA平台无关性

 问题:

HI~大家好,我刚上路学JAVA,老师讲到JAVA的平台无关性,可是我的手机JAVA程序无法在计算机平台上执行,而我在计算机上写的程序也无法在手机上执行,那所谓"平台无关性"是什么意思呢?希望大虾们能解释给小弟听听~小弟在此先谢谢各位大虾了@-@  

 解答:

平台无关性不能在你所说的那个例子上解释.

所谓平台就是指程序运行所依赖的环境(操作系统), 比如Windows, Linux和Solaris等等. 它们必须提供给程序运行所需要的一切必要条件.
无关性就是指, 拥有这种性质的程序的运行并不直接依赖于它所处的平台.

上边已经说了程序的运行是需要一些必要条件的, 所以你可以这样认为Java的程序, "平台, 运行的必要条件, 程序"三者是分开的, 每一个都是独立存在的. 这样就可以从"运行的必要条件"部分将程序从对平台完全依赖中解脱出来. (Windows中的可执行程序EXE和DLL对Windows的完全依赖是显而易见的, 因为它们都直接地使用了Windows底层的实现部分, 也就是Windows API, 对于这些API而言微软公司并没有将它们在其它的操作系统中实现过, 事实上Windows API也不适合这样做, 因为在早期Windows被发明的时候, 世界上的操作也不是很多, 所以出于竞争或者其它原因微软公司并不希望他们的程序运行在其它厂商的机器上了, 所以Windows API也没有被设计成有这种跨平台的能力, 另一个原因也可 能是微软公司的决策者们目光短浅)

这也就解释了为什么J2SE包括JDK和JRE的原因了.
JDK是将Java的原代码文件编译成所谓的字节码文件(.class文件), 以便JRE运行它. 不管在哪种平台上, 开发者所编写出的程序都是有着类似的动作和目的(因为都是人类, 所以想法都比较类似), 基于此原因不同平台上的JDK并没有太大的区别, 但并不是说就没有区别, 这些区别可能主要表示在JDK的实现上, 当然这就不是一般开发者所需要顾虑的, 因为JDK并不需要他们来开发或者扩展, 而这些是SUN工程们的工作.
而JRE就是这个"运行的必要条件", 不同的平台上的JRE虽然可以执行来着其它平台上编译后生成的字节码文件, 但对字节码文件的解释确是完全不同的, 因为JRE得用不同的解释产生不同的动作来适应所在平台的环境(因为所有的平台的实现都不尽相同, 所以对生产相同效果所用的手段也不相同). 所以不同的平台有不同的JRE, 而它可以不顾虑所接受的字节码文件是由哪个平台产生的(也有特例, 但都是重编译一下原代码就可以解决跨平台问题).

至于楼主所说的手机的Java游戏与电脑Java程序的问题, 这里有一个Java程序开发库的问题.
Java的开发库分为三种类型, J2ME(Micro Edition), J2SE(Standard Edition), J2EE(Enterprise Edition). 而手机程序所使用的是J2ME, 顾名思义就是适用于小型系统所使用的库, 比如说PDA和手机(这些都是小内存, 低CPU运算速度的系统). 而电脑里的Java程序使用的是J2SE, 标准的Java程序库, 它包含也所有Java的核心API. J2EE是基于J2SE的基础上用于企业的商业计算上的Java程序库, 它没有自己的JDK与JRE, 因为这些都是基于J2SE的, 而它独有的则是对网络的各种技术的支持. 比如JSP, Servlet等等.
前两者(J2ME与J2SE)的"JRE差别"与不同平台上的"JRE差别"是不一样的, 因为不同的平台可以运行在相同类型的计算机硬件系统上的(前边所说的三种操作系统都可以运行在X86的计算机硬件系统上), 但PDA或者手机的硬件系统是不能与X86硬件系统的性能相比的. 所以说PDA或者手机有它们自己的JDK与JRE.

不知道我对跨平台的解释是否会解开楼主对跨平台的疑问呢!
如果各位觉得此文件不错, 那我就可以放心里将此文件放到我的Blog中了.
也希望各位看官如发现有错误内容, 请给予指出或批评.
本人文采极差, 还请各位包涵.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值