相关疑难解决方法(0)

访问最终局部变量比Java中的类变量更快吗?

我一直在寻找一些Java基本集合(的宝库,fastutil,HPPC)和我已经注意到,类变量有时声明为图案final的局部变量.例如:

public void forEach(IntIntProcedure p) {
    final boolean[] used = this.used;
    final int[] key = this.key;
    final int[] value = this.value;
    for (int i = 0; i < used.length; i++) {
        if (used[i]) {
          p.apply(key[i],value[i]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经完成了一些基准测试,看起来这样做会快一点,但为什么会这样呢?我试图理解如果函数的前三行被注释掉,Java将采取哪些不同的做法.

注意:这似乎与这个问题类似,但这是针对c ++的,并没有说明它们被声明的原因final.

java optimization micro-optimization

14
推荐指数
2
解决办法
5412
查看次数

标签 统计

java ×1

micro-optimization ×1

optimization ×1