黑马程序员技术交流社区

标题: Java虚拟机 [打印本页]

作者: 小罴孩    时间: 2013-7-29 17:33
标题: Java虚拟机
Java虚拟机到底是一个什么东西?求大神给个具体生动的解释!

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

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

作者: 高永强    时间: 2013-7-31 21:52
就是用来解释java字节码文件的程序,相当于一个操作系统平台,就像windows执行exe文件一样,在不同的操作系统平台上用相应的jvm就可以读取class文件中的指令一条一条的执行。
作者: hmYing    时间: 2013-7-31 22:15
Java可以做到跨平台开发,就是因为有Java虚拟机
作者: hmYing    时间: 2013-7-31 22:15
Java可以做到跨平台开发,就是因为有Java虚拟机
作者: sergio    时间: 2013-8-1 00:44
{:soso_e123:}如果看过unix操作系统的源码的话,可以将jvm理解成一个类似的东西。java编写的程序通过给jvm,而jvm又解释给让操作系统可以理解的一种方式,根据操作系统的特性,编写的程序再做出相应的举动,呈现给软件使用者。凌驾于操作系统之上,而又离不开操作系统本身。记住JVM不垮平台,因此也就会出现各种版本的JDK安装包了!
作者: xuaner0719    时间: 2013-8-1 01:36
简单说就java程序编译工具,讲.java文件编译为.class文件。还有java虚拟机本身不支持跨平台。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2