That's such an unfair comparison, though (and really, with 8+ GB of RAM being the norm, 20 MB is still pretty svelte). Java has an entire virtual machine and runtime, whereas a C program is just a binary that gets loaded straight into memory.
So yes, they're comparable. Choosing inefficient ways to do things (in the case of Java) is not a way to escape comparison.