The big language features for Java SE 8 are lambda expressions (closures) and default methods (formerly called /defender methods/ or /virtual extension methods/). Adding closures to the language opens up a host of new expressive opportunities for applications and libraries, but how are they implemented?
You might assume that lambda expressions are simply a more syntactically compact form of inner classes, but, in fact, the implementation of lambda expressions is substantially different and builds on the invokedynamic feature added in Java SE 7. This session illustrates the boundary where language design and JVM architecture meet and influence each other.
Video producer: http://gotocon.com/