It will be extremely beneficial to learn C (not necessarily C++), because you'll begin to understand how the JVM is written and why it works the way it does. You get to learn in much greater depth about how the whole end-to-end process of making the machine do things works - memory bandwidth, cache pollution, etc.
Don't you say. It's actually unimportant to learn C++ to understant how compilers work. The real important thing, to learn how CPU works, is hard to do from C, it's MUCH more direct and easy from assembly. Some programmers were able to get a clue from drawing of CPU, the others from some nasty tests and hard 20 hours of programming.
Of course there are numerous articles, and arstechnica.com.
Optimalization of cache by C++ programmer could be called an reordering and additing few compile switches by an optimist. (Remember a fire of an optimist from Terry Pratchet book? Two wood pieces and a disapearing smoke.)
BTW a some test C++ knowledge. You have on your computer a few compiled .obj files (COFF), you know names of methods that needs to be exported in a library, you know name of library. You have cl.exe, and link.exe. You can't receive any other manual, programs, or anything. Your CEO was pissed locked the door, computer isn't connected to any network for security reasons, and you need to create a windoze dll file until he returns.
And of course you can't recompile source files.
If you REALLY know C, you should find a solution, otherwise you are slave of an IDE.