Is lambda really an object or not?

Solution 1:

There are a couple bits that need untangling here.

A lambda is an object. In particular, it's an instance of a functional interface, which has only one abstract method.

Not every occurrence of a lambda makes a new object.

invokedynamic can, but is not required to, make a new object.

invokedynamic is used to get lambda objects, whether or not they are newly created.