黑马程序员技术交流社区

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

作者: 牛合超    时间: 2013-3-4 14:17
标题: JAVA 虚拟机
本帖最后由 牛合超 于 2013-3-5 11:38 编辑

java 实现跨平台性,是通过了JAVA虚拟机,看视频学习了JVM上是执行的java字节码
,但不理解,JVM是怎么读取java语句,和解释执行编译后的字节码的。。怎么就能翻译
成计算机能执行的代码,,中间是不是有什么过程啊,请教高手通俗的讲解一下啊,,
网上的描述太抽象搞不明白,不理解就老会觉得这个词挺抽象的。。

作者: 曹春贵    时间: 2013-3-4 18:03
通过jvm这个工具解释了只有它能看懂的java代码,将其变成机器能懂的语言,既然机器懂了就照做了。我也只能这么理解了
作者: wahaha    时间: 2013-3-4 21:53
本帖最后由 夏添 于 2013-3-4 21:54 编辑

说简单点哈,java虚拟机有好几种,windonw,linux等等(这就是跨平台的原理),共同的作用就是把我们写的代码.java文件编译成对应的.class文件,就是字节码,计算机能识别的东西了
然后基于计算机底层(说白了,很多功能的实现都是虚拟机调用计算机的功能实现的)来运行我们的程序

作者: 曹睿翔    时间: 2013-3-4 23:02
我也来给你吹吹。为什么说跨平台?其实吧他有个前提就是说你的操作系统需要有相应的jvm(java虚拟机,这个东西呢,包含了java底层的东西,比如把它的gc垃圾回收机制(用来回收不在使用的实例垃圾什么的),还有类加载器(咱开始写的*.java,通过javac编译后是*.class文件,类加载器就是加载class文件,将他加载进计算机内存(这时是二进制文件)也就是所谓的字节码文件)),加载成二进制之后计算机就能读懂执行了
作者: 占琳    时间: 2013-3-4 23:22
所有程序代码在计算机中都是以补码的形式在运行。
代码不管在何种操作系统都要编译成电脑能理解的字节文件,才能运行成功。
所以每个操作系统都有相对应的JDK编译JAVA文件,让操作系统理解这些指令。




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