Some points:
-
Java is a known language, developers know it and don’t have to learn it
-
it’s harder to shoot yourself with Java than with C/C++ code since it has no pointer arithmetic
-
it runs in a VM, so no need to recompile it for every phone out there and easy to secure
-
large number of development tools for Java (see point 1)
-
several mobile phones already used Java ME, so Java was known in the industry
-
the speed difference is not an issue for most applications; if it was you should code in low-level language