这是我正在询问的一段代码
for (int i = 0; i < this.options.size(); i++) {
RadioButton butt = this.options.get(i);
//do something with butt
}
如果将其更改为以下内容,我将获得巨大的性能改进:
RadioButton butt;
for (int i = 0; i < this.options.size(); i++) {
butt = this.options.get(i);
//do something with butt
}
编辑:如果此代码每秒执行30-50次,而
options
大约为20,该怎么办? 最佳答案
对于所有现实的,可测量的情况,两种性能之间绝对没有区别。实际上,我非常确定(诚然,我不确定),它们会导致分配和引用创建的数量完全相同。对于JVM创建N个引用持有者而言,这是愚蠢的。它将简单地重用第一次迭代中创建的那个,在下一次分配中简单地为其提供引用。这意味着在两种情况下都只使用一个参考持有人(假设这是事实)。