1.所需的参数类型不一致 匿名内部类参数可以是类,抽象类,接口; lambda 中参数只能是接口 2.抽象方法的数量不一致 匿名内部类中的抽象方法可以是一个或者多个,没有固定限制 lambda中接口中的抽象方法只能有一个 3.实现原理不同 匿名内部类是再编译后生成.class文件 lambda是再运行时动态的生成.class 总结: 当接口中只有一个抽象方法时,建议使用lambda表达式,可以简化代码,但是当有多个抽象方法时,还是只能使用匿名内部类的形式实现具体的那个方法。