java - 关于效率的一般查询

标签 java

我对 Java 还比较陌生,不到一年前就参加了第一堂 Java 类(class),我有一个关于效率的问题。我知道

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。第二个示例不存储任何内容,但在打印时必须比第一个示例计算更多的东西。

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

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

感谢您提供的所有帮助:) 亲切的问候

最佳答案

任何理智的编译器都能够执行此类编译时优化,以减少额外的代码行,从而提高可读性。这不是 Java 特有的(JIT 将优化提升到一个新的水平)

关于java - 关于效率的一般查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550950/

相关文章:

JavaFX如何停止当前传输文件SFTP

java - AsyncTask 使应用程序崩溃

java - Java GUI 中的命令行界面

java - 无法从我的 Android 笔记应用程序的列表和数据库中删除笔记

java - 为什么浏览器找不到java插件?

java - 正则表达式 : repeated concrete digit var vs repeated any digit var (Java)

java - 如何将 java.util.List 复制到另一个 java.util.List

Java程序打印字符串中的第一个非重复字符

java - 将可运行的 jar 转换回 eclipse 项目?

Java 线程通过按钮暂停和恢复的问题