循环检查条件

gui*_*eak 9 java loops

我想向更多有经验的开发人员询问一个简单但对我来说不明显的事情.假设您有这样的代码(Java):

for(int i=0; i<vector.size(); i++){
   //make some stuff here
}
Run Code Online (Sandbox Code Playgroud)

我经常遇到这样的陈述,所以也许没有任何错误.但对我来说,似乎没有必要在每次迭代中调用一个size方法.我会用这样的方法:

int vectorSize = vector.size();
for(int i=0; i<vectorSize; i++){
    //make some stuff here
}
Run Code Online (Sandbox Code Playgroud)

同样的事情在这里:

for(int i=0; i<myTreeNode.getChildren().size(); i++){
   //make some stuff here
}
Run Code Online (Sandbox Code Playgroud)

我绝对不是编程方面的专家,所以我的问题是:我是否寻求在对冲完整或者在专业代码中处理这些细节很重要的差距?

vla*_*ean 8

方法调用要求JVM确实执行其他操作.所以你正在做的事情,在第一次看来似乎是一种优化.

但是,一些JVM实现足够智能,可以内联方法调用,对于那些,差异将不存在.

例如,Android编程指南总是建议您执行您已经指出的内容,但同样,JVM实现手册(如果您可以开始使用它)将告诉您它是否为您优化代码.