I got into a long discussion on Reddit about whether or not Java lambdas are just sugar for anonymous classes. I contend that lambdas are different from anonymous classes in too many important respects to consider them just sugar for anonymous classes. But, some of the replies have me questioning this.
Can anyone, once and for all, list the exact technical differences between AIC and lambdas in Java? Is it true that once the code is hot and running it's really just an AIC? I thought no originally. AIC creates a new class that must be loaded for each unique use. Not so with lambdas right? Or do lambdas create new classes for each unique use?
Update: I'm especially curious what the actual implementation in various flavors of Java 8 are. I keep reading conflicting things.