Es que Linux es exactamente eso, un kernel. Y en ese sentido, Android es "tan" Linux como Ubuntu o Fedora. Además utiliza muchísimo software libre que no es estrictamente Linux. Por ejemplo, OpenGL, SQLite, Gzip, etc.
Java es un lenguaje, Linux es un kernel. No tiene mucho sentido hacer esas comparaciones. De hecho existen proyectos GNU (digamos que es eso que llamáis "Linux") escritos en Java. Pongamos como ejemplo TuxGuitar.
Un SO desarrollado en Java debe de ser algo como una foto retocada con el Paint. Java tiene sus cosas buenas y cosas malas, y entre las malas está el rendimiento. El SO en sí, lo que es toda la parte de las librerías a bajo nivel, está en C y C++ (también utiliza Python, aunque no sé para qué componentes ni en qué medida), y utilizará Java para las partes más "visibles" y superficiales. Piensa que por debajo hay un montón de procesos, y el que tú hagas una llamada desde Java a la API del Bluetooth, por ejemplo, no significa que al hacer esa llamada no se llame a un proceso escrito en C++, que será, necesariamente, muchísimo más eficiente.
Linux es un kernel escrito desde cero, basado en Unix. No es Unix, sino que intenta imitar a Unix, más bien.
