Java can address 32GB heaps with compressedoops flag enabled. After that flag is off, you can address as much as 64 bits will allow.
http://stackoverflow.com/questions/2093679/max-memory-for-64...
Do a little research before implying that there's no way that Java can address gigantic heaps.