站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于java跨平台原理,求助!

关于java跨平台原理,求助!

摘要: 关于java跨平台原理,求助!


初学java,看了很多资料,一直对java跨平台原理这个概念很模糊,本人意见是由于java虚拟机的存在,但有些地方始终琢磨不透,前辈们能给个详细点的解释吗?谢谢!!


这样类比。
你的电脑是5v的,在中国用220v的变压器。
在美国用110v的变压器。但对于你的电脑来说它是不用管你外电是多少,他只要5v的电。

你的java基本的java运用通过jvm的变换才到具体系统运行。jvm象一个变压器隔离了操作系统的变化。当然win32下你要用win32的jvm,linux下你要用linux的jvm。




这个跟计算机原理差不多,处理器能执行的只能是二进制代码也就是.exe文件,都是010101010,java的跨平台就是因为,java有了自己是虚拟机就能够解释执行.class的文件。所以说,无论是在哪个平台上,只要有java虚拟机,遇到的.class就能就能够解释执行


.java-.class---执行
|
虚拟机



java跨平台特性不是说在windows下的编的,
java程序就一定能在linux下编译运行,
相反,高手能让非跨平台语言一处编写到处运行,
菜鸟即使用跨平台语言也编不出跨平台的程序来,
所以,个人觉得java跨平台特性并没有什么好吹嘘的!



JVM 就相当于 OS了


何谓跨平台?我的理解就是不同的OS,不同的硬件环境,不同的web服务器。
结合java程序的执行过程:针对不同平台采用通用的java编译器将java源程序编译成字节码文件,然后由JVM对字节码文件解释执行。关键就是在把.class文件解释执行成为机器识别的机器码这一步,正是由于JVM的存在,才有了java 的跨平台?

还想问一下,不同平台,JVM是一样 的吗?


还想问一下,不同平台,JVM是一样 的吗?

实现的细节应该不一样!


一句话,java解释器能将字节码译成适用于不同平台环境的机器码,显然对于不同的平台,运行时环境肯定是不一样的


编译器编译出来的是字节码(这是关键),不是最终的二进制代码。
在不同平台上运行的时候,虚拟机根据字节码生成二进制代码去运行。



ding


↑返回目录
前一篇: JSP中java类型的函数能否从javascript中获取参数?
后一篇: 小弟弟刚学servlet.想请教大家一个问题!