我有以下内容:
double timeInMinutes = (double) timeInMilliseconds / (1000 * 60);
操作 (1000 * 60)
是在编译时还是运行时完成的?换句话说,上面的代码片段和以下代码片段在运行时是否存在性能差异:
double timeInMinutes = (double) timeInMilliseconds / 60000;
编辑:我的问题与“Java编译器是否会预先计算文字的总和?”不同,因为我在算术运算中混合使用变量和字面值。这是一个小差别,但正如@TagirValeev在评论中指出的那样(文字上的算术运算在编译时还是运行时计算?),有些文字即使可以进行预编译,也有实例是没有被预编译的。
(double) time / 1000 / 60
不是对字面量进行的操作,并且由于浮点数的原因,不能期望它会给出与(double) time / (1000 * 60)
相同的结果。 - user1084944