小编Cry*_*tor的帖子

javac是否预先计算了固定表达式?

是否为此类变量声明提供了优化:

final int secondsInDay = 24 * 60 * 60;
Run Code Online (Sandbox Code Playgroud)

尽管additional_funct根本没有使用,但C++上的这段代码甚至都无法编译:

#include <iostream>

void additional_funct(int num);


void main()
{
    std::cout << "just a text";
}


void additional_funct(int num)
{
    // For both lines will be shown "divide by zero"
    int var = 5 / 0;
    int another_var = num + (2 / 0);
}
Run Code Online (Sandbox Code Playgroud)

这证明了C++编译器在运行之前对数字文字表达式进行了优化,以预先计算它们.虽然相同的Java代码将开始运行:

package experimental_main;

public class Experimental_start {
    public static void main(String[] args) {
        // Will throw ArithmeticException "by zero"
        additionalMethod(2);
        System.out.println("just a text");
    } …
Run Code Online (Sandbox Code Playgroud)

java javac

0
推荐指数
1
解决办法
83
查看次数

标签 统计

java ×1

javac ×1