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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© IT人 中级黑马   /  2013-12-5 10:39  /  1243 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当java程序被编译器编译成class文件存在硬盘上,但是不能成为字节码,JVM的类加载器把.class文件加载进内存后,才能成为字节码。在这中间有什么不同么???发生了什么变化????

6 个回复

倒序浏览
你好,楼主,.java源文件被编译器编译成.class文件时,.class文件就是所谓的字节码了,只不过我们用平时那些文件查看器是看不到.class文件里面的内容的,看到的是乱码 ,.class文件可以被java虚拟机(JVM)识别并执行.
回复 使用道具 举报
字节码是二进制,.class文件的还是乱码,要经过累加载器处理,得到计算机能够识别的语言
建议去再看一看java的跨平台实现原理,图示比较清楚
回复 使用道具 举报
.class文件就是字节码文件   .class文件是JVM能识别的文件
回复 使用道具 举报
为了保持它跨平台的特性,java源文件先编译成一种中间码,在运行的时候再实时编译成目标平台的机器码。这就是不同之处
回复 使用道具 举报
字节码与特定机器码不同,是需要直译器转译后才能成为机器码的中间代码。字节码主要为了实现特定软件运行和软件环境、与硬件环境无关。字节码的实现方式是通过编译器和虚拟机器。

“当java程序被编译器编译成class文件存在硬盘上,但是不能成为字节码”,放到class里面的就是字节码。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

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