Java the language has a lambda / function-literal syntax, not first-class functions. (You know this, obviously.)
The `struct` bit can refer to a few things: value typing, stack allocation, and explicit memory layout. I think records give you value typing, but not stack allocation or explicit memory layout. They are just syntactic sugar for immutable POJOs.