EDIT: how is this question different from Java8 Lambdas vs Anonymous classes: The answers provided in the previous question are regarding of how they work in a higher level. I already understand the syntax benefits. My question here is regarding the facts, that anonymous classes are ultimately obejct isntances, and lambdas are not objects. I wan't to understand the differences and implications under the hood of this mechanism and how does it work.
So, the first notable difference is naturally in the syntax. The second is that as far as I udnerstand, lambdas may only be implemented as @FunctionalInterfaces which requires that the interface we are implementing have only one method, which allows better inference.
Premise: as I understand a functional interface has a "non-object method" (source here)
My question is, exactly how do they differ "under the hood", by this I mean, if how are they difference in a sense that anonymous classes are instanciated, they ultimately objects, but lambdas.. are not? This is what I don't fully understand, are lambdas not really instances of objects? What are the real differences of lambdas not being objects in comparison to an anonymous class?