所需类型不同: 匿名内部类:可以是抽象类,可以是接口,也可以是具体类Lambda表达式:只可以是接口 使用限制不同: 如果接口中有且仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类如果接口中的抽象方法不止一个,就只能使用匿名内部类,不能使用Lambda表达式 实现原理不同: 匿名内部类在编译之后会产生一个单独的.class字节码文件Lambda表达式在编译之后不会产生一个单独的.class字节码文件,对应的字节码会在运行的时候动态生成