Java 8 now has some functional concepts. How functional can it really get, though?
Java 8 introduces lambdas, but it also introduces method references which are a very handy syntax for producing lambdas off of objects and classes. I walk through the various types here.
Java supports throwing exceptions of a generic type, but it is rarely a useful trick. With Java 8, that is changing.