有一个我想要问的解释性代码.Sureley,下面的代码之间的差异是可以忽略的,但它描述了这一点.
在内存使用和性能方面哪一个最有效?
if( MathUtil.CalculateSin(angle) > Angles.ACUTE){
// Something is done
}
Run Code Online (Sandbox Code Playgroud)
要么
double angleSin = MathUtil.CalculateSin(angle);
if( angleSin > Angles.ACUTE){
// Something is done
}
Run Code Online (Sandbox Code Playgroud)
这取决于您是否要重新使用变量.
如果您不打算重新使用它,则没有理由将值存储在变量中.
编辑:
根据你的评论,似乎你主要是问这个问题的性能问题......
实际上我的问题不是关于算法,也不是我实现它的方式.我很好奇这些方法的内存使用情况,因此效率就是目的.
不要指望这两种方法在内存使用方面存在任何差异,JVM和JIT将尽可能地优化它,以便两种情况都变得相同.