It depends what you mean by "functional programming" and by "possible".
You can obviously implement things following a functional paradigm. However the Java language doesn't provide the syntactic sugar for it, so some things will be tedious at best, and some other ones will be extremely arcane.
Similarly, you can very well write object-oriented code in a language recognized as being non-OO, like C.
There are libraries that can help you do this, by already doing the legwork for you and hiding the arcane things:
- mature/established libraries:
- more obscure/experimental libraries:
These will allow you to write Java code with a more functional approach and possibly more familiar syntax and semantic, as you'd expect from an FP-competent language. Within reason, that is.
And obviously, you can implement a functional language on top of Java. So that you can then use that one as your FP language. Which is a bit of a higher-level of abstraction than what you asked for, but relatively within context (though I'm cheating a bit here, granted).
For instance, check out:
- quite mature languages:
- less mature or active / more obscure languages:
More-or-Less Functional JVM Languages
You may also want to read or watch these articles or videos: