lambda
字节码中,lambda表达式处会出现个invokedynamic,这个指令在运行时会动态链接到 LambdaMetafactory.metafactory。
字节码会多出个方法,比如在main方法使用了lambda表达式,就会多出个lambda$main$0,里面是lambda要执行的代码

lambda相比于匿名内部类来说更高效,因为它避免了每次使用lambda时都生成一个新类的开销,后面会复用生成的lambda方法
lambda中可以使用到外部的变量,但是不能在表达式中对这些变量进行修改,其原理就是,lambda表达式会被动态生成一个方法,这个方法是私有的、静态的,然后外部参数会被这个方法参数传进来。