This presentation was recorded at GOTO Aarhus 2013. #gotocon #gotoaar
[ Ссылка ]
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
[ Ссылка ]
[ Ссылка ]-
[ Ссылка ]
[ Ссылка ]
#Java #Lambda #JavaSE8 #BrianGoetz
CHANNEL MEMBERSHIP BONUS
Join this channel to get early access to videos & other perks:
[ Ссылка ]
Looking for a unique learning experience?
Attend the next GOTO conference near you! Get your ticket at [ Ссылка ]
Sign up for updates and specials at [ Ссылка ]
SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
[ Ссылка ]
Ещё видео!