关于效率的一般查询

时间:2015-05-30 20:17:24

标签: java

我对Java相对较新,一年前我的第一堂课就开始了,我对效率有疑问。我知道

Random rng = new Random();
int num = rng.nextInt(101);
System.out.println("Random number is: " + num); //Example 1

Random rng = new Random();
System.out.println("Random number is: " + rng.nextInt(101)); //Example 2

是等价的。但是我的问题是哪个更快计算?在我看来,第一个例子存储一个占用RAM的变量。第二个例子没有存储任何东西,但是在打印时必须计算比第一个例子更多的东西。

在我的计算课程中,我被告知来自CPU内部寄存器的信息比来自RAM的信息快得多。这是否意味着示例2在技术上更有效率,因为在打印之前没有存储数字变量?

我当然假设我不需要在程序中的另一个点随机生成的数字。

感谢您的帮助:) 亲切的问候

2 个答案:

答案 0 :(得分:2)

任何理智的编译器都能够执行这样的编译时优化,以减少额外的代码行,从而提高可读性。这不是特定于Java(JIT将优化提升到下一级别)

答案 1 :(得分:0)

由于该数字将被转换为串联的字符串,因此它可能会被放入堆栈的内存中。