有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何以及何时计算静态最终字段值?

该字段的值是在每次访问时计算的,还是在开始时被1.73…替换

private static final double SQRT_3 = Math.sqrt(3);

我不这么认为,但直接把价值计算出来有什么好处吗?我在某人的代码中看到了这一点


共 (1) 个答案

  1. # 1 楼答案

    在您发布的代码中,SQRT_3字段将在类加载时初始化,并调用Math。sqrt(3)。稍后,当您访问该字段时,您将获得第一次调用返回的值,以及数学。sqrt再也不会接到电话了

    直接相加而不是用数学计算的优点。sqrt是一个常量表达式,可以由编译器内联。不过,这是一个真正的微观优化。测量瓶颈在哪里并修复它们,不要为小事操心