我正在写一个程序,我关心的是运行它所需的时间和空间。
在程序中,我使用一个变量来存储数组的长度:
int len=newarray3.length;现在,我想知道我是否能够通过不使用len变量而在需要时调用newarray3.length;来降低空间复杂度。
注意:只有两种情况需要使用length。
发布于 2013-04-08 05:21:34
“我们应该忘记小效率,比如97%的时间:过早优化是万恶之源”-- Donald Knuth
首先,单个int变量使用的空间量可以忽略不计。更广泛地说,不要担心这些次要的性能问题(“时间和空间”)。专注于编写清晰、可读的程序和高效的算法。如果性能最终成为一个问题,那么只要你的总体架构是可靠的,你就能够进行优化。所以把重点放在那个架构上。
发布于 2013-04-08 05:22:00
我真的很怀疑这是不是能提高你的表现的东西。无论如何,我会使用newarray3.length (而不是赋值给一个占用内存并添加另一个操作的新变量)。这是一个字段(甚至不是一个方法调用)。读取它与读取您复制的int值相同,但您可以省去复制和int消耗的4字节内存。
发布于 2013-04-08 05:27:40
Java数组不能调整大小,因此该对象的长度成员变量是常量,这可能会导致JIT进行各种优化。
https://stackoverflow.com/questions/15867959
复制相似问题