Cita: como sabemos la segunda opcion es mejor ,es mas rapida
¿Ah si? Yo sinceramente lo dudo ya que cualquier compilador minimamente inteligente acaba con el mismo codigo en ambos casos. Lo unico que haces es escribir menos.
En cuanto a consejos generales sobre optimización... son muy dificiles de dar ya que hay muchos aspectos diferentes y al ser Java un lenguaje de nivel bastante alto (con varias capas de abstracción, me refiero) es dificil hacer predicciones.
Pero asi por encima, normalmente el código más "simple/previsible" suele ser el más eficiente, puesto que el compilador es capaz de optimizarlo más facilmente. Las llamadas a métodos són más costosas que insertar código, por ejemplo y luego depende mucho del programa y lo que haya que realizar. Y en Java hay muchas cosas a tener en cuenta, empezando por el Garbage Collector que es "dificil de predecir".
Para poder ser capaz de predecir esas cosas, habria que estudiarse la especificacion de la JVM que se va a utilizar, ya que puede variar, y jugar con el codigo resultante en bytecode de diferentes aproximaciones.
Habia un apartado antes en el web de sun sobre rendimiento, pero no se si sigue por ahi. Para la mayoria de casos es un tema relativamente irrelevante, y por eso no hay mucha literatura.
Suerte!