Java Optimizations

Estou me perguntando se há alguma diferença de desempenho entre

String s = someObject.toString (); System.out.println (s);

System.out.println (someObject.toString ());

Olhando para o bytecode gerado, parece haver diferenças. A JVM consegue otimizar esse bytecode em tempo de execução para que ambas as soluções ofereçam os mesmos desempenhos?

Neste caso simples, é claro que a solução 2 parece mais apropriada, mas às vezes eu preferiria a solução 1 para fins de legibilidade e só quero ter certeza de não apresentar "diminuições" de desempenho nas seções críticas de códig

questionAnswers(10)

yourAnswerToTheQuestion