It is fast - but not significantly more than Haskell, C#, OCaml, etc.
Java is a terrible language though. For example:
-The syntax for doing anything remotely functionalish (anonymous classes, function currying, etc) is completely unwieldly.
-Null pointers still being a problem in 2009 is an embarrassment. A simple Maybe Monad would fix it (of course, because of previously mentioned syntax problems - I need the language implementors to add syntactic sugar since library-based Maybe Monads are too ugly.
-Generics and autoboxing were a good start at fixing the terrible type/primitive system, but Sun has proved unwilling to break backwards bytecode compatibility, which leaves us with ugly hacks like type erasure.
The JVM is undeniably impressive (and even more so once we get invokedynamic and tailcall bytecodes) and I think that is going to be the true legacy of Java. Scala, Clojure, et al show amazing promise - in a few years I could see JVM languages dominating the field.