[英]What is more expensive? Assignment or declaration?
只是一个简单的问题,在Java中什么会更昂贵?
double test = 5;
double test1 = 5;
要么
double test = 5;
double test1 = test;
都不行 Java有一个非常好的优化器,它将在此示例中生成完全相同的代码。
编译器查看赋值double test1 = test;
并可以得出结论,此时test
是一个等于5
的常数,可以完全优化分配。
这也是为什么您不必害怕扩展数值的原因。
int timeout = 60 * 60 * 2 // 2 hours in seconds
完全不说,这是微优化的一种情况,它永远不会返回任何值得注意的东西。 担心网络连接会延迟几秒钟。
两者之间的差异应忽略不计。 我想常量会稍微快一点,因为没有加载测试的值,但是实际上...值得您花时间去担心它。 可读性比您可能节省的一两个周期重要得多。
我的第一个冲动就是说,编写一个小的循环程序并对其进行测试。 但是,可能比这更复杂。
编写代码后,Java可以完成各种优化工作,而这正是他们关注的工作。 因此,这使回答变得更加困难,并且可能取决于特定的JRE和代码。
虽然我知道这是一个有趣的学术问题,但实际上,答案可能是“无关紧要”,而您代码的其他部分通常会更多地成为瓶颈。
对于您的特定示例,我觉得“ 5”可能是一种特殊情况,其中有一个静态整数系统池,我知道它们使用字符串来实现。 有人知道吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.