A "game engine" is quite a vague term. If you take any game, and split it apart into the "technology" and "game content" parts, the "technology" part is a game engine.
For example, if you started with Minecraft, and removed all the built-in blocks, items, entities, GUIs, textures, language translations, etc, then the stuff left would be a game engine, with which you could then build a Minecraft-like game. Or you could build a game that's not like Minecraft, but then you're ignoring a lot of the engine's abilities and should consider using a different engine.
If you take Crysis, and remove all the (whatever game content Crysis has), the stuff left is CryEngine 2, which you can then use to build a Crysis-like game. Or you could build a game that's not like Crysis, but then you're ignoring a lot of the engine's abilities and should consider using a different engine.
If you take the original Doom, and remove all the levels, textures, weapons, etc, the stuff left is the Doom engine (aka id-Tech 1). You wouldn't say "Doom is bad because it uses the Doom engine. They should switch to another engine," though, because the Doom Engine is just part of Doom - what you are really saying is "They should throw away half their game and re-do it from scratch."
In the same way, it doesn't make sense to say "Minecraft is bad because it uses the Minecraft engine. They should switch to another engine."
Languages are entirely different from game engines. I don't have sources, but many people have found that computation-intensive Java code runs at about the same speed as computation-intensive C code.
Also, because Java is garbage collected it needs
around 20% more memory than C for equivalent performance. A bit inefficient there, but not a huge deal.