Es equivalente pero no idéntico. Simplemente dicho, si una expresión lambda no captura valores, será un singleton que se reutilizará en cada invocación.
El comportamiento no se especifica exactamente. La JVM tiene una gran libertad sobre cómo implementarla. Actualmente, la JVM de Oracle crea (al menos) una instancia por expresión lambda (es decir, no comparte instancia entre diferentes expresiones idénticas) pero crea tonos únicos para todas las expresiones que no capturan valores.
Puede leer esta respuesta para más detalles. Allí, no solo di una descripción más detallada sino que también probé el código para observar el comportamiento actual.
Esto está cubierto por la especificación del lenguaje Java®, capítulo “ 15.27.4. Evaluación en tiempo de ejecución de expresiones lambda ”
Resumido:
Estas reglas están destinadas a ofrecer flexibilidad a las implementaciones del lenguaje de programación Java, en el sentido de que:
No es necesario asignar un nuevo objeto en cada evaluación.
Los objetos producidos por diferentes expresiones lambda no necesitan pertenecer a diferentes clases (si los cuerpos son idénticos, por ejemplo).
No es necesario que todos los objetos producidos por evaluación pertenezcan a la misma clase (las variables locales capturadas pueden estar en línea, por ejemplo).
Si hay una "instancia existente" disponible, no es necesario que se haya creado en una evaluación lambda previa (por ejemplo, podría haberse asignado durante la inicialización de la clase adjunta).