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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小罴孩 中级黑马   /  2013-7-29 17:33  /  1536 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java虚拟机到底是一个什么东西?求大神给个具体生动的解释!

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 神马都是浮云

查看全部评分

10 个回复

倒序浏览
本人理解说白了就是个翻译员
回复 使用道具 举报
那可不是翻译哦。
回复 使用道具 举报
按我的理解应该是一个平台或者环境,在这个平台上或环境中,java程序可以运行。
回复 使用道具 举报
传送门:http://www.cnblogs.com/chenzhao/archive/2011/08/14/2137713.html
JVM的内部体系结构分为三部分,分别是:类装载器,运行时数据区,和执行引擎。
1,类装载器,顾名思义,就是用来装载.class文件的。JVM的两种类装载器包括:启动类装载器和用户自定义类装载器,启动类装载器是JVM实现的一部分,用户自定义类装载器则是Java程序的一部分,必须是ClassLoader类的子类。
2,执行引擎:它或者在执行字节码,或者执行本地方法
3,运行时数据区:主要包括:方法区,堆,Java栈,PC寄存器,本地方法栈

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
http://baike.baidu.com/view/160708.htm百度百科:
JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
也就是:
.class-------加载(其实.java编译成的.class中一堆JVM指令)----->JVM(也就是像风雨兼程同学说的翻译官,只不过不同平台需要不同版本的JVM)---解释->机器指令(CPU能直接识别并执行的指令,说白了就是最低级的机器语言,计算机只懂这个)

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
就是用来解释java字节码文件的程序,相当于一个操作系统平台,就像windows执行exe文件一样,在不同的操作系统平台上用相应的jvm就可以读取class文件中的指令一条一条的执行。
回复 使用道具 举报
hmYing 中级黑马 2013-7-31 22:15:03
8#
Java可以做到跨平台开发,就是因为有Java虚拟机
回复 使用道具 举报
hmYing 中级黑马 2013-7-31 22:15:14
9#
Java可以做到跨平台开发,就是因为有Java虚拟机
回复 使用道具 举报
{:soso_e123:}如果看过unix操作系统的源码的话,可以将jvm理解成一个类似的东西。java编写的程序通过给jvm,而jvm又解释给让操作系统可以理解的一种方式,根据操作系统的特性,编写的程序再做出相应的举动,呈现给软件使用者。凌驾于操作系统之上,而又离不开操作系统本身。记住JVM不垮平台,因此也就会出现各种版本的JDK安装包了!
回复 使用道具 举报
简单说就java程序编译工具,讲.java文件编译为.class文件。还有java虚拟机本身不支持跨平台。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马