I call on the length of a given array a lot and I was wondering if it is better to keep calling it numerous times (50+ times currently, but it keeps growing) or is it better to just store the length in an integer and use that integer every time.
If I am unclear in what I am saying, consider the following:
I have a String array:
String[] str = new String[500]; //The length is actually dynamic, not static
Of course, I put some values into it, but I call on the length of the string all the time throughout my application:
int a = str.length;
int b = str.length;
int c = str.length;
int d = str.length;
int e = str.length;
and so on...so is it better to do this: (performance wise, don't care about memory as much)
int length = str.length;
int a = length;
int b = length;
int c = length;
int 开发者_开发百科d = length;
int e = length;
Thanks.
There is no difference. You don't call a method when accessing the length of the array. You just read an internal field. Even if you called a method, the difference would be negligible with current JVMs.
array.length is accessing a field in the array object, so it should not have any impact on performance.
Which do you feel would make the code clearer?
The JVM is likely to optimise the code to do the same thing. Even if it didn't the difference is likely to be less than 1 nano-second.
精彩评论