Wenn Sie Leistung brauchen, dann brauchen Sie muss testen in Ihrer Umgebung. Keine andere Möglichkeit.
Hier ein Beispielcode:
int tmp = 0;
String s = new String(new byte[64*1024]);
{
long st = System.nanoTime();
for(int i = 0, n = s.length(); i < n; i++) {
tmp += s.charAt(i);
}
st = System.nanoTime() - st;
System.out.println("1 " + st);
}
{
long st = System.nanoTime();
char[] ch = s.toCharArray();
for(int i = 0, n = ch.length; i < n; i++) {
tmp += ch[i];
}
st = System.nanoTime() - st;
System.out.println("2 " + st);
}
{
long st = System.nanoTime();
for(char c : s.toCharArray()) {
tmp += c;
}
st = System.nanoTime() - st;
System.out.println("3 " + st);
}
System.out.println("" + tmp);
Auf Java online Ich verstehe:
1 10349420
2 526130
3 484200
0
Unter Android x86 API 17 erhalte ich:
1 9122107
2 13486911
3 12700778
0