我是读源的java.util.HashMap,发现它几乎总是在分配table领域的一个局部变量,如果使用该值比方法一次.
由于这个类被记录为不是线程安全的,并且字段不易变,这有什么意义呢?它是否使代码更有效?
通过将成员字段放入本地作用域(即当前堆栈帧),可以修复该方法的整个执行的引用.因此,对于每次使用,您都对相同的对象具有相同的引用.
如果不将其放入本地范围,则每次访问该字段都是通过this引用(隐式或显式).因此,对于每次访问,JVM必须获取字段的当前值 - 理论上可能在上次访问后发生更改.
除了更可靠之外,JIT可以优化访问,即循环(内联值,无论如何).
对性能的影响相当小,但可以衡量.
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |