Go uses quite a bit less memory than Java.
As per the Specjbb benchmark, JDK9 compact strings optimization itself provides,
* 21% memory footprint reduction
* 27% less GC
* 5% throughput improvments
https://www.infoq.com/presentations/java-se-9-cloud - check this presentation for more details.Impressive numbers.
Due to value types support, which are part of Java 10's roadmap.
I do like the slide though showing that people tend to assemble abstractions together and completely lose sight of the performance costs of what they are doing. There's also the fallacy commonly held by many that because someone took the time to write a framework or library, they must have also taken the time to ensure it's optimized well.