Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字节码是否比任何可执行代码(.exe等)都快?_Java - Fatal编程技术网

Java 字节码是否比任何可执行代码(.exe等)都快?

Java 字节码是否比任何可执行代码(.exe等)都快?,java,Java,我对字节码感到困惑 假设我的代码是 class Simple{ public static void main(String args[]){ system.out.print("hello Java!"); } 让它在java编译器中编译,然后成为一个简单的.class 及 编译后,生成sample.exe 什么更快 sample.exe或sample.class字节码类似于JVM的指令集。Java编译器会将您正在编写的任何代码转换为字节码,以便于执行。这类似于使用翻译器,以翻译

我对字节码感到困惑

假设我的代码是

class Simple{  
public static void main(String args[]){  
  system.out.print("hello Java!");
}
让它在java编译器中编译,然后成为一个简单的.class

编译后,生成sample.exe 什么更快
sample.exe或sample.class

字节码类似于JVM的指令集。Java编译器会将您正在编写的任何代码转换为字节码,以便于执行。这类似于使用翻译器,以翻译器可以理解的方式传达代码。因此,您编写的任何代码都将转换为标准形式的操作码和操作数(如果有)


更多信息可以在上找到。

这实际上取决于各个解决方案的实现质量-很可能一个好的字节码引擎会打败一个写得不好的编译器,但是一个实现得不好的字节码引擎肯定会比一个高质量的本机编译器慢

一个优秀的优化本机编译器通常会击败产生字节码的编译器,但也有一些不错的即时编译器在字节码方面也做得很好——还有一个额外的优势,就是能够通过分析信息理解代码的“热”和“冷”路径,在C或C++编译器中至少需要一个额外步骤的步骤-运行一些有代表性的示例代码来收集信息,然后将其反馈给编译器进行“概要引导优化”。
如果字节码实现只是一个字节码解释器(而不是一个“即时编译器”),人们会期望从本机编译的代码片段中看到更好的性能。但是现代Java“字节码解释器”几乎总是内置JIT编译器。

您想知道Java字节码是如何工作的吗?或者如果java比C++快,那么这应该是一个注释,而不是一个answer@Jens由于rep points,无法发表评论:(我的建议总是指向产品文档或可靠的页面。我不是说WIKI不相关,但任何人都可以编辑它……因此,内容的真实性是不合理的。你应该在答案中添加更多的内容……写一些比你刚才写的一行多一点的东西。@Shreyasarvothama我同意,但这里的OP想要k。)现在,java编译器是如何工作的,wiki页面在这方面提供了一个很好的想法。
 int main(){
          print("hello Java!");
          }