Why assign a final field variable to a local copy before calling its method (Best Practice or for a specific reason)?
<p>When checking the source code of <code>ArrayBlockingQueue</code> I noticed that before calling on any method of an object instance, a final field has  been assigned to a local variable. Is this done to achieve a specific purpose?</p>

<pre><code>public E peek() {
    final ReentrantLock lock = this.lock;
    lock.lock();
    try {
        return (count == 0) ? null : items[takeIndex];
    } finally {
        lock.unlock();
    }
}
</code></pre>
