已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
昨天关门了。
Improve this question
在Java中,下面的代码是一个好的做法还是坏的也建议一个内存效率的方式
int num1 = (int) Math.random(),
num2 = (int) Math.random(),
sum = (num1 + num2);
System.out.print("sum is " + sum);
我想知道最有效和最合适的惯例。
1条答案
按热度按时间pprl5pva1#
一般来说,在Java中这样做是非常好的。关于性能和内存消耗,与逐行声明变量相比,您的方法没有什么区别,如下所示:
默认的Java编译器会将变量声明转换为优化的机器码,因此这两种不同的方法通常会导致Java虚拟机在终端设备上执行相同的字节码。
我测试了OpenJDK17附带的标准编译器的输出。
我创建了两个名为
TestFileSL.java
(单行变量声明)和TestFileML.java
(多行变量声明)的测试文件,然后使用javac
命令将它们编译为.class文件。然后我使用javap -c
命令打印类文件的内容。下面提供了这两个文件的输出。正如你所看到的,除了类名之外,它们是完全相同的:如果您的代码使用
java.lang.Math
包的静态方法Math.random()
,则此方法将返回一个介于0和1之间的随机double
。因此,当将其转换为int
时,变量和总和将始终为0。要访问一个类的静态方法,你需要写类名,所以在你的例子中应该是Math.random()
而不是math.random()
。