Мне сказали, что код, например:
for (int i = 0; i < x.length(); i++) {
// blah
}
на самом деле O (n ^ 2) из-за повторных вызовов x.length(). Вместо этого я должен использовать:
int l = x.length();
for (int i = 0; i < l; i++) {
// blah
}
Это правда? Длина строки сохраняется как частный целочисленный атрибут класса String? Или String.length() действительно перемещает всю строку только для определения ее длины?