¿Por qué los parámetros del método se reasignan a variables locales?

Al mirar a través del código fuente de la API de Java, a menudo veo parámetros de métodos reasignados a variables locales. ¿Por qué se hace esto?

void foo(Object bar) {
  Object baz = bar;
  //...
}

Esto está en java.util.HashMap

public Collection<V> values() {
  Collection<V> vs = values; 
  return (vs != null ? vs : (values = new Values())); 
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta