如果我将变量设为最终值,事情会运行得更快吗?

2024-03-31

我正在为 Android (Java) 编写。

我将 int 和 float 声明为持续循环的一部分。

其中一些在声明后不需要更改。

如果我在声明时将它们全部设置为final,事情会运行得更快吗?

[Edit]

感谢大家。我实际上并没有期望它能做出任何改进,我只是注意到,在浏览了各种大型项目的源代码后,它相当常见。干杯


事情不会进展得更快。这final关键字只是编译时语法糖。


如果真的是的话static final,那么您可以利用编译时计算和内联任何引用中的值。因此,例如:

private static final long ONE_WEEK_IN_MILLIS = 7 * 24 * 60 * 60 * 1000L;

public void foo(Date date) {
    if (date.getTiem() > System.currentTimeMillis() + ONE_WEEK_IN_MILLIS) {
        // No idea what to do here?
    }
}

编译器将优化其中一个或另一个,最终结果如下:

private static final long ONE_WEEK_IN_MILLIS = 604800000L;

public void foo(Date date) {
    if (date.getTiem() > System.currentTimeMillis() + 604800000L) {
        // No idea what to do here?
    }
}

如果您运行反编译器,您会自己看到它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果我将变量设为最终值,事情会运行得更快吗? 的相关文章

随机推荐