为什么Java可以跨平台呢?为什么,什么是虚拟机阿?
3个回答
展开全部
一般我们所谓的执行档
内容是一堆人类看不懂得机械码 是拿来给机器看的
因为他要直接指挥计算机去做事情 所以得写成机器可以执行的语言
问题是
每一台机器有自己的语言 每一个平台也有自己的语言
所以在不同的机器上 我们要用不同的执行档
那 Java 怎么达成一个程序 跨平台执行的呢~~
其实, Java 是在各种平台之上建立起他自己的平台
也就是所谓的 JVM (Java 虚拟机器)
再用 JVM 来执行他的类别档
因为不管在甚么平台上 实际执行类别档的都是 JVM
所以就可以达到 跨平台的目的
123456
类别档程式
______________________________|_________________________________
| | | |
Windows95/98版JVM WindowsNT系列JVM Linux版JVM Unix版JVM
| | | |
Windows95/98 WindowsNT/2000 Linux Unix
所以要执行 Java 的程序 就必须先在机器上启动 JVM 才行
而启动 JVM 的程序 就是所谓的 JRE
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.为什么要使用Java虚拟机
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
2.谁需要了解Java虚拟机
Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
内容是一堆人类看不懂得机械码 是拿来给机器看的
因为他要直接指挥计算机去做事情 所以得写成机器可以执行的语言
问题是
每一台机器有自己的语言 每一个平台也有自己的语言
所以在不同的机器上 我们要用不同的执行档
那 Java 怎么达成一个程序 跨平台执行的呢~~
其实, Java 是在各种平台之上建立起他自己的平台
也就是所谓的 JVM (Java 虚拟机器)
再用 JVM 来执行他的类别档
因为不管在甚么平台上 实际执行类别档的都是 JVM
所以就可以达到 跨平台的目的
123456
类别档程式
______________________________|_________________________________
| | | |
Windows95/98版JVM WindowsNT系列JVM Linux版JVM Unix版JVM
| | | |
Windows95/98 WindowsNT/2000 Linux Unix
所以要执行 Java 的程序 就必须先在机器上启动 JVM 才行
而启动 JVM 的程序 就是所谓的 JRE
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.为什么要使用Java虚拟机
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
2.谁需要了解Java虚拟机
Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
参考资料: http://www.ccw.com.cn/soft/apply/os/htm2005/20051025_148HV.htm
展开全部
因为Java是解析性的语言,必须要有解析器(虚拟机)才能运行,所以只要在某个操作系统安装解析器,Java程序就能运行,所以它能够跨平台.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的解释不完全正确。
Java是一种先编译后解释的语言。javac命令可以将后缀名为.java的源文件编译成后缀名为.class的中间代码文件,注意这里不是汇编代码也不是机器代码,而是sun公司专为java开发的中间语言,虚拟机就是解析执行这种语言的虚拟CPU,对比物理执行机器语言。虚拟机跑在不同的软硬环境上,虚拟机负责将中间语言解析成机器语言或汇编语言交给CPU执行,它将各种不同的设备封装成统一的API,我们编的程序就能够在任何平台上无需重新编译便可执行了
Java是一种先编译后解释的语言。javac命令可以将后缀名为.java的源文件编译成后缀名为.class的中间代码文件,注意这里不是汇编代码也不是机器代码,而是sun公司专为java开发的中间语言,虚拟机就是解析执行这种语言的虚拟CPU,对比物理执行机器语言。虚拟机跑在不同的软硬环境上,虚拟机负责将中间语言解析成机器语言或汇编语言交给CPU执行,它将各种不同的设备封装成统一的API,我们编的程序就能够在任何平台上无需重新编译便可执行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询