This presentation was recorded at GOTO Aarhus 2013. #gotocon #gotoaar http://gotocon.com Brian Goetz - Java Language Architect at Oracle ABSTRACT 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. TIMECODES 0:00 Introduction 2:24 Lambda expressions for Java 4:02 Why lambdas for Java? 5:44 Big question #1: typing 9:10 Functional interfaces 12:05 Big question #2: representation 16:02 New bytecode tool: Method Handle 19:15 Stepping back... 20:49 Bytecode invocation modes 21:38 New bytecode tool:invokedynamic 30:34 Translation strategies 31:40 Indy: the ultimate procrastination aid 32:40 Indy: the ultimate lazy initialization 34:08 Indy: the ultimate indirection aid 34:59 Performance costs 36:16 Performance example - linkage cost 37:32 Performance example - capture cost 40:47 Future VM support (?) 42:49 Serialization 44:54 Summary https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #Java #Lambda #JavaSE8 #BrianGoetz CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Get notified about new features and conference additions.