黑马程序员技术交流社区
标题:
解惑:一道简单的课后题
[打印本页]
作者:
王小丑
时间:
2013-2-7 09:48
标题:
解惑:一道简单的课后题
我在看书时有一道课后题问 java编译器将源文件编译生成的字节码是机器码吗? 我觉得.class文件像机器码啊,是不是呢?要是不是又是什么呢?求解答
作者:
惠晖
时间:
2013-2-7 10:02
是的是的是的
作者:
逍林游
时间:
2013-2-7 10:33
.class文件不是二进制文件,当被类加载器加载后在内存中才是字节码!
作者:
李洪因
时间:
2013-2-7 11:04
Java编译后是字节码,在运行的时候把字节码变成机器码。
.class 文件是.java的编译文件,就是java程序本身,是java程序最最重要的部分.在系统中的jvm只认识.class的二进制编码文件,.class文件就是运行在jvm上的java程序,并被java虚拟器解释成计算机可以"看懂"的机器码 然后执行。java的跨平台性就是.class,可以运行在任何系统的jvm(java虚拟机)上。
作者:
黄玉昆
时间:
2013-2-7 23:44
当你在键入下面的命令:(比如有个类文件是Demo.java)
javac Demo.java
java Demo
复制代码
javac程序(在bin目录下有javac.exe的程序)是一个java编译器。
它将文件Demo.java编译成.class,并发送到JVM虚拟机。虚拟机执行编译器存放在class文件中的字节码。
机器码就是机器能看懂的语言,即010101这些底层二进制语言,所以所机器码和字节码不在一个层面上。
作者:
王昕
时间:
2013-2-8 12:52
.class是给JVM看的,JVM把它翻译成机器码,不同机器的机器码不同,因为指令集什么的都不同。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2