性能方面,每次调用给定数组的长度或将长度存储在变量中并每次调用该变量更好吗?

时间:2011-07-08 15:39:19

标签: java performance

我对一个给定阵列的长度进行了很多调用,我想知道是否更好地继续多次调用它(目前已经超过50次,但它会不断增长)或者将长度存储在一个中是否更好?整数并且每次都使用该整数。

如果我不清楚我在说什么,请考虑以下事项:

我有一个String数组:

String[] str = new String[500]; //The length is actually dynamic, not static

当然,我在其中添加了一些值,但是在整个应用程序中我一直调用字符串的长度:

int a = str.length;
int b = str.length;
int c = str.length;
int d = str.length;
int e = str.length;

依此类推......所以最好这样做:(表现明智,不要太关心记忆)

int length = str.length;
    int a = length;
    int b = length;
    int c = length;
    int d = length;
    int e = length;

感谢。

3 个答案:

答案 0 :(得分:16)

没有区别。访问数组长度时不调用方法。你刚读了一个内部字段。即使您调用了一个方法,当前JVM的差异也可以忽略不计。

答案 1 :(得分:3)

array.length正在访问数组对象中的一个字段,因此它不会对性能产生任何影响。

答案 2 :(得分:2)

您认为哪种代码更清晰?

JVM可能会优化代码以执行相同的操作。即使没有,差异也可能小于1纳秒。