Java 是一种 OOP 语言,它具有多个用于各种目的的内置类和方法。 String 类就是这样的一个例子。 length()
方法确定字符串的长度。
例如,
String str = "hello";
for(int i=0;i<str.length();i++)
{
//code
}
这里,如果变量 i 小于字符串的长度,则评估条件,然后循环迭代。但是,它是否每次都确定长度?
方法 length()
是否在每次评估条件之前调用?如果是这种情况,那么 Java 是否将变量的值内部存储在寄存器中以便快速访问(或者)程序员必须像这样显式地执行此操作:
String str = "hello";
int len = str.length();
for(int i=0;i<len;i++)
{
//code
}
这种方法的效率如何?
最佳答案
现代 JIT 可能会注意到 length() 是最终类的简单 getter,返回最终原始值,并用 int 值本身替换方法调用。对于 C 和其他语言来说,优化惩罚是正确的,但是不是java。 C 的 strlen 遍历 char 数组以查找字符串结尾字符。
关于java - java是否进行内部优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314537/