Appendix D. Lambdas and JVM bytecode
You may wonder how the Java compiler implements lambda expressions and how the Java virtual machine (JVM) deals with it. If you think lambda expressions can simply be translated to anonymous classes, you should read on. This appendix briefly discusses how lambda expressions are compiled, by examining the generated class files.
D.1. Anonymous classes
We showed in chapter 2 that anonymous classes can be used to declare and instantiate a class at the same time. As a result, just like lambda expressions, they can be used to provide the implementation for a functional interface.
Because a lambda expression provides the implementation for the abstract method of a functional interface, it would seem straightforward ...