java中匿名内部类和lambda的区别

java中匿名内部类和lambda的区别

💡 原文中文,约600字,阅读约需2分钟。
📝

内容提要

本文介绍了Java中创建只有一个抽象方法的接口的两种方法:匿名内部类和lambda表达式。lambda表达式使用动态语言的特性,可以修改引用类型。JDK7引入了invokedynamic字节码指令以实现Java的动态类型。

🎯

关键要点

  • Java中创建只有一个抽象方法的接口可以使用匿名内部类或lambda表达式。

  • 使用匿名内部类创建对象时,引用类型是固定的,不能替换成其他接口。

  • 使用lambda表达式创建对象时,引用类型可以修改为任意其他只有一个抽象方法的接口。

  • Java的强类型特性与动态语言特性之间存在差异。

  • JDK7引入了invokedynamic字节码指令以实现Java的动态类型特性。

  • 反射可以实现动态语言特性,但引入invokedynamic是为了更好地支持JVM运行其他语言的代码。

➡️

继续阅读