1. 能不能把java搞成编译型语言 有没有人设计一种编译器直接把java源码编译为机器指令
1. java已经是编译型语言,因为不编译源程序是没法直接运行的。只不过java是编译成中间的二进制代码,不是最终的机器代码。
2.已经有这种编译器,免费的如gnu的gcj,收费的如Excelsior JET。不过没有太大必要使用,java在运行时也会把中间代码动态优化成本地机器代码,这种优化的结果一般会优于预先编译的结果,因为动态优化可以因地制宜,根据程序运行情况和计算机硬件的状况来动态选择优化策略。
2. 一段java代码经过jvm会被转化成汇编语言吗
理论上说计算机运行的程序都可以被反汇编的。但java这类程序就不一样了~~~java程序运行在java虚拟机(jvm)里由java虚拟机和操作系统进行交互操作。java源文件在编译成*.class时,java源代码被编译成类似计算机汇编代码的java汇编代码(也就是 Java字节码),这时java虚拟机就像cpu一样可以“运行java汇编代码”所以java的类并不是计算机是机器指令而是由jvm解译成机器指令运行的。
3. 汇编和编译程序的区别急
汇编程序是将汇编语言(低级语言)翻译成二进制机器指令的程序
编译程序是将高级语言(java,c++)翻译成二进制机器指令的程序
4. java的代码是汇编语言吗
汇编是除了机器语言外的最底层的语言,java是面向对象的语言,是属于最高级的语言之一了,与汇编语言差的太多。完全不是同一个东西,连相似的地方都几乎没有。
至于java的底层是用什么实现的就不好说了,估计java 的底层应该也是使用的与汇编相似的语言写的,那么多复杂的类应该会有一种比较高效的机制来处理。