是否更快(或更有效)创建变量而不是在输出中使用操作?

Oak*_*Oak 2 java variables output

我正在创建一个程序(实际上,我已经完成了它),它将kiloBytes转换为字节和MegaBytes.

它相当容易,创建它花了我几秒钟.我的问题是我设法找到了大量的解决方案,这让我感到奇怪,这更有效率.

这是字节输出的示例:

System.out.println(kiloByte + " KB = " + (1024 * kiloByte) + " bytes");
Run Code Online (Sandbox Code Playgroud)

但想象一下,如果我必须在不同的地方打印字节,而不是我必须有类似的东西

System.out.println((1024 * kiloByte) + " " + (1024 * kiloByte));
Run Code Online (Sandbox Code Playgroud)

在我看来,最好是创建一个变量,而不是两次执行相同的操作,因此看起来像这样:

int vbyte = 1024 * kiloByte;
System.out.println( vbyte + " " + vbyte);  // vbyte as a variable for bytes
Run Code Online (Sandbox Code Playgroud)

虽然,我并不完全确定是这种情况,所以,我是否正确假设第一个版本慢于第二个?

ass*_*ias 5

JVM可能会发现它们是相同的计算并且只执行一次.但即使它没有,在任何现代CPU上乘法都不到一纳秒,所以你不会注意到差异,特别是在打印时,这需要花费几个数量级的时间......

现在从可读性的角度来看,使用命名良好的变量通常是一件好事,所以选择2.