C is a fairly low-level language, that allows for high performance and doesn't need extra code to interface with the hardware.

Notice the absence of Java from the Linux kernel.

The reasons?

Java is not free
Java is a very high-level language that needs lots of additional software to work.

For application coding, Java is a fine choice. For kernel-level stuff, it is quite irrelevant (unless all computers/devices had JRE ROMs on hardware...)