For relevant upcoming changes see Automatic Heap Sizing for ZGC: <a href="https://openjdk.org/jeps/8329758" rel="nofollow">https://openjdk.org/jeps/8329758</a>
The 32x virtual memory to physical memory ratio plays into relocation and colored pointers (i.e pointers where some bits serve as flag bits).<p>Putting the actual data layouts in 44 bits out of 64 is a neat trick which relies on the allocator being aware of the mappings between physical and virtual addresses.