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

标签 java static field constants final

这个字段的值是在我每次访问它时计算还是在开始时被 1.73... 替换?

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

我认为不是,但是直接输入值有什么好处吗?我在某人的代码中看到了这一点

最佳答案

在您发布的代码中,SQRT_3 字段将在类加载时初始化,调用 Math.sqrt(3)。稍后,当您访问该字段时,您将获得第一次调用返回的值,并且不再调用 Math.sqrt。

直接添加值而不是使用 Math.sqrt 计算它的优点是该值将是一个常量表达式,可以由编译器内联。不过,这是一个真正的微优化。衡量瓶颈在哪里并加以解决,不要为小事操心。

关于java - 如何以及何时计算静态最终字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32784844/

相关文章:

Django模型添加uuid

Java Combobox,管理数据库中的 2 个字段

JavaFX - 从另一个线程更新 TextArea 并缺少迭代

java - 使用nodejs模拟soapUI签名请求

java - 连接到 AWS Neptune

java - HttpURLConnection超时似乎被忽略

arrays - 在哪里定义与 symfony2 中的实体相关的静态数组?

swift - 给定一个 Swift 对象的实例,我们可以测试它的类是否存在类函数吗?

c++ - 重载运算符中具有静态函数的模板与具有非静态函数的对象

MySQL数据库-优化相同的多个字段