只调用array.length两次int i = array.length有什么好处吗?

时间:2013-12-14 19:35:14

标签: java arrays optimization compiler-construction

在这种情况下,将数组的长度放入int中是否有任何好处 - 可能很小 - 或者只是更好地调用array.length两次?或者编译器优化是否使这些方法等效?

没有int:

Vector<String> vs = new Vector<String>(a_o.length);
for(int i = 0; i < a_o.length; i++)  {
   vs.add(a_o[i]);
}

INT:

int iLen = a_o.length;
Vector<String> vs = new Vector<String>(iLen);
for(int i = 0; i < iLen; i++)  {
   vs.add(a_o[i]);
}

2 个答案:

答案 0 :(得分:5)

AFAIK,一个不错的编译器,编译器会为你做这个优化 即使不是,打击也是最小的。使用Vector可能会遭受更多的痛苦。见Why is Java Vector class considered obsolete or deprecated?

答案 1 :(得分:1)

编译器很聪明,相信它。它会优化它。

不要在这样的性能问题上浪费时间,更担心数据结构等其他问题。