java - Java 或 C++ 源代码中的算术和逻辑运算由谁来完成?

标签 java c++

<分区>

例如:

int a = 6;
int b = 5;
int c = a + b; // Who does this?

编译器会做吗?

如果是这样,一个从控制台输入中获取 a 和 b 值的程序怎么样? 在这种情况下,对象/exe 文件已经创建并且编译器只对源文件起作用,对吧?

最佳答案

在 C++ 中,编译器发出指令供处理器执行。

但是,编译器可能会优化常量并发出其他指令。在上述情况下,编译器可能会发出指令:

  mov C, 11  ; Move the value 11 into register for the C variable.

对于 Java,编译器创建 Java 字节码供 Java 虚拟机执行。同样,编译器或 JVM 可以简化或优化指令。

编辑 1:从控制台读取
在 C++ 中,编译器针对您提供的语句发出指令,以从控制台读取值。如果您的程序中没有要从控制台读取的语句,编译器将不会发出任何从编译器读取的指令。

在 Java 中,类似于 C++,但 Java 字节码是由 Java 虚拟机 (JVM) 发出和执行的。

关于java - Java 或 C++ 源代码中的算术和逻辑运算由谁来完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28415827/

相关文章:

java - 如何创建固定字节大小的字符串

java - Eclipse/Flash Builder 文件搜索的正则表达式是否有评论?

java - 替换 Clavier.lireDouble

c++ - 客户端代码 : Memory leak for particular functions 中的 Valgrind Hook

c++ - 如何处理这些旧式类型转换?

java - 关于排序算法概念的问题

java - 有限制的运行配置

c++ - libsvm(C++)始终输出相同的预测

c++ - 如果 vector 是 vector 的 vector ,vector.swap() 和 vector.erase() 是否释放所有分配的内存?

c++ - 使用 C++ 获取 1 到 10 之间的随机数