¿Usando variables para almacenar valores u obtener directamente valores de los objetos?

El escenario es que necesito acceder a un valor al menos dos veces. Es decir. Estoy utilizando el registrador para realizar un seguimiento de lo que está sucediendo en la aplicación. Quiero registrar el nombre del objeto, la función está funcionando y luego hacer algo con el mismo nombre (es decir, verificar si contiene alguna cadena o colocarlo en una matriz).

Almacenando el nombre en variable:

foo(Bar bar){
    String name = bar.getName();
    logger.info("I am working with "+name);
    this.doSomethingWith(name);
}

O llamando a getName () dos veces:

foo(Bar bar){
    logger.info("I am working with "+bar.getName());
    this.doSomethingWith(bar.getName());
}

Entiendo que en el primer escenario, crearé una nueva Cadena, le asignaré un valor y luego recuperaré este valor dos veces. De esta manera estoy usando más recursos de memoria, ¿correcto?

En el segundo escenario, ¿estoy accediendo a la barra de objetos dos veces y luego accediendo a su nombre dos veces? Supongo que este no es un enfoque seco. Pero por otro lado no me estoy repitiendo en la memoria, ¿correcto?

¿Qué enfoque es mejor?

Respuestas a la pregunta(3)

Su respuesta a la pregunta