You know, Java lacks a lot of functionality required to properly develop an Operating System. Java applications run in a virtual machine. This means that their code is deprived of any access to the underlying hardware. You do not have access to CPU, memory, file system, CD-ROM, network adapter, etc. It is good for writing portable secure applications but a deal-breaker when you want to write a device driver, operating system and other pieces of software that has to directly interface with hardware.
On the contrary, C was developed primarily for systems programming. That is why it has pointers, very small library of built-in functions and all the facilities needed to make every possible piece of optimizations to ensure minimal memory footprint and maximum performance. It was specifically created for developing Unix. It is no wonder that not only Unix, but all major operating systems (DOS, Windows, Linux, Mac OSX, Symbian Android, etc.), hardware drivers, etc. are all written in C.
So, if you are interested in programming microchips, operating systems, device drivers or any other programming requiring access to the underlying hardware, you should learn C.