Java lets you trade memory for performance. The bigger the heap, the less frequent the young-gen GCs, and the less frequent young-gen GCs, the less garbage you need to collect (because more young objects get to die). So most times when you see large Java heaps that's by choice, as many people prefer paying with memory (which is cheap on servers) for performance. So Java is a "memory hog" only when you want it to run at full speed (and that's true for all generational GC environments). But nothing is stopping you from running "standard" Java with a really small heap; you'd still get better performance than Node or Erlang, and get enjoy all of the excellent tools.
Not knowing it well is a good reason not to use it, though.
I know there are small footprint Java's, but then you're maybe wandering off the beaten path...