C is a procedure-oriented language, so it is also called Procedural Programming Language, while Java is a data-oriented language, so it is also called Object-Oriented Language.
C is platform-dependent and is based on the concept of Write Once Compile Anywhere, whereas Java is platform-independent and is based on the concept of Write Once Run Anywhere.
As a compiled language, C converts code into ML for system to understand, whereas Java is an interpreted language, where code is turned into bytecode and then executed by the JVM.
As a middle-level language, C binds ML and high-level languages together; whereas, Java is high-level language since its code is translated into ML using a compiler or interpreter.