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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 牛合超 中级黑马   /  2013-3-4 14:17  /  1536 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 牛合超 于 2013-3-5 11:38 编辑

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

4 个回复

倒序浏览
通过jvm这个工具解释了只有它能看懂的java代码,将其变成机器能懂的语言,既然机器懂了就照做了。我也只能这么理解了
回复 使用道具 举报
本帖最后由 夏添 于 2013-3-4 21:54 编辑

说简单点哈,java虚拟机有好几种,windonw,linux等等(这就是跨平台的原理),共同的作用就是把我们写的代码.java文件编译成对应的.class文件,就是字节码,计算机能识别的东西了
然后基于计算机底层(说白了,很多功能的实现都是虚拟机调用计算机的功能实现的)来运行我们的程序
回复 使用道具 举报
我也来给你吹吹。为什么说跨平台?其实吧他有个前提就是说你的操作系统需要有相应的jvm(java虚拟机,这个东西呢,包含了java底层的东西,比如把它的gc垃圾回收机制(用来回收不在使用的实例垃圾什么的),还有类加载器(咱开始写的*.java,通过javac编译后是*.class文件,类加载器就是加载class文件,将他加载进计算机内存(这时是二进制文件)也就是所谓的字节码文件)),加载成二进制之后计算机就能读懂执行了
回复 使用道具 举报
所有程序代码在计算机中都是以补码的形式在运行。
代码不管在何种操作系统都要编译成电脑能理解的字节文件,才能运行成功。
所以每个操作系统都有相对应的JDK编译JAVA文件,让操作系统理解这些指令。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马