I'm no expert (just trying to learn the functional paradigm too), as far as I know, lambda is the name for anonymous functions (should be equivalent to lambda functions too). Java doesn't have anonymous functions, they're simulated through anonymous classes. (there's a huge debate on adding them, because they're needed for closures)
A closure is a little different, for what I could understand from the
wikipedia article, is the combination of the anonymous function with the other variables referenced by it.