Java 引入了字节码指令invokedynamic来构造匿名类,然后generate byte code为lambdas. 因此,如果是 lambdas,java 会生成实现类并在运行时生成字节码。一旦字节码生成,其余步骤与普通方法调用相同。因此,在 lambda/method ref 的情况下,only overhead is constructing an anonymous class and generate its byte at runtime. 所以 lambdas 比普通的方法调用要慢一些。