我对一个给定阵列的长度进行了很多调用,我想知道是否更好地继续多次调用它(目前已经超过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;
感谢。
答案 0 :(得分:16)
没有区别。访问数组长度时不调用方法。你刚读了一个内部字段。即使您调用了一个方法,当前JVM的差异也可以忽略不计。
答案 1 :(得分:3)
array.length正在访问数组对象中的一个字段,因此它不会对性能产生任何影响。
答案 2 :(得分:2)
您认为哪种代码更清晰?
JVM可能会优化代码以执行相同的操作。即使没有,差异也可能小于1纳秒。