It is inherently inconsistent for speed.
As it uses it's own garbage collector it is inevitable that when GC kicks in the rest of the system must slow down a little to accommodate it. Because of that you cannot guarantee the timeliness of your code.
Don't get me wrong - this is not a critique of Java - I am just saying that in Java you cannot guarantee that a certain piece of code will always run within a certain amount of time.