При проверке исходного кода ArrayBlockingQueue
я заметил, что перед вызовом любого метода экземпляра объекта конечное поле было назначено локальной переменной. Это делается для достижения определенной цели?
public E peek() {
final ReentrantLock lock = this.lock;
lock.lock();
try {
return (count == 0) ? null : items[takeIndex];
} finally {
lock.unlock();
}
}