A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hmr8 中级黑马   /  2013-4-23 16:48  /  1386 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

jvm称虚拟机,到底虚拟什么,C里面在运行前要经过编译、连接、运行,java 好像直接编译子后运行,中间jvm做了什么工作?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

倒序浏览
我的记忆中,jvm就是运行代码的一个虚拟机
回复 使用道具 举报
jvm  就是通过软件在实际的计算机上虚拟一台适用用java的计算机。 他虚拟了 一个栈  一个堆等 内存。也就是说他虚拟了java运行所需要的硬件设施
回复 使用道具 举报
VM是Java虚拟机,所有的Java程序都在Java虚拟机中运。
JDK是Java开发工具包,用来开发Java程序。

jdk中有一个编译器,可以把你的java源代码编译成可以在虚拟机(jvm)
上运行的字节码(中间代码).

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
hmr8 + 2 赞一个!
田磊阳 + 1

查看全部评分

回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢

评分

参与人数 1黑马币 +3 收起 理由
hmr8 + 3 很给力!

查看全部评分

回复 使用道具 举报
jvm,java虚拟机。
我们写好的程序,经过编译后,变成了字节码文件。这种文件电脑是无法直接运行的,需要通过jvm。
jvm就是字节码与机器之前的桥梁,不同的系统有不同的jvm。jvm根据系统的不同将字节码文件编译成对应的机器能够识别运行的文件。
当你编译好一个字节码文件后,也就是得到一个.class文件,这个可以在windows平台通过jvm运行,也可以在linux平台通过Jvm运行。
也就是java所谓的“一次编译,处处运行”。这其实就是jvm的功劳。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马