Из кода для класса String видно, что length()
возвращает value.length
(here).Длина строки() Неисправность
Скажем, я хочу напечатать длину строки str
length()
раз.
Q1) Что было бы лучшим способом сделать это из следующих фрагментов кода: (если у вас есть лучший способ предложить, пожалуйста)
Код 1:
public static void main(String[] args) {
String str="Hello World";
for(int i=0;i<str.length();++i){
System.out.println(str.length());
}
}
Code 2 (я предпочитаю это одно дело читаемости он предлагает о программе ...)
public static void main(String[] args) {
String str="Hello World";
final int len=str.length();
for(int i=0;i<len;++i){
System.out.println(len);
}
}
Код 3:
public static void main(String[] args) {
String str="Hello World";
int len=str.length();
for(int i=0;i<len;++i){
System.out.println(len);
}
}
Q2), который является наиболее оптимизированным способом или они одинаковы?
Q3) Содержит ли компилятор длину в байт-коде, сгенерированную для этой программы?
Спасибо!
Для небольшой программы, подобной этой, вы можете скомпилировать программу и посмотреть на байт-код. Следуйте вместе с wiki-статьей для инструкций байтового кода. JVM - это совсем другая история. –
Я не понимаю, что вы пытаетесь сделать ... зачем вы хотите распечатать длину 'str' 11 раз? – StormeHawke
Время, затрачиваемое на вызов 'length()', незначительно по сравнению с временем, затрачиваемым на распечатку результата. –