我们知道javac.exe将java源文件编译成字节码文件,既然是编译,那么生成的文件应该就是二进制的“机器”指令了,如果是,那么按照常理,之后用java.exe的作用就应该是执行指令了,可为什么说Java.exe是解释器,难道源文件在编译成字节码文件(字节码文件已经是二进制文件了)之后还要再经过一次解释(或说成是转换)之后才最后交给java虚拟机去执行吗?如果是的话,那么干嘛不将这两个步骤合二为一呢,这样分开做又是出于什么原因呢?我个人认为java虚拟机说的简单一点也不就是个中间解释器而已,因为java虚拟机的作用是将java程序转换为所在机器的机器指令,同一个java程序在不同的机器上,经java虚拟机翻译出来的最后结果是截然不同的
解决方案 »
- JAVA node.getNodeValue();是什么意思?
- OAViewRowImpl,OAViewObjectImpl 引入有错吗
- java的一段代码,老是出错,哪位大佬帮忙看看,谢谢了
- 面试厦门欧乐时的一道编程题,有兴趣请进!
- 大家看看这种登陆界面是用什么语言设计的?
- 使用HttpClient登录问题(小弟新手请多指教)
- 探讨:用另一个JFrame动态显示前一个JFrame背景图片的一部分
- 为什么将HashMap的一个实例放入Set中,再用iterator()取出会出现ClassCastException?(有代码)
- 关于money型数据?
- 省级电力营销、客服中心??
- 问大家一个问题.关于int类型零的处理问题!
- 求助:用反射机制来得到简单bean的所有的值, 也就是代替toString()方法.
java.exe是解释执行
1)很多时候,编译通过的代码不一定能够正常执行
也就是说可能会抛出RuntimeException
比如数组越界,强制转型错误等
2)在多态中,代码直到运行时才会知道去调用哪一个实现还有其他区别,楼下继续补充哦