It seems that it is not suitable for JVM 11 or higher to statically allocate 50% heap.
Ref:
For Java 11 and above
The Xmx value is 25% of the available memory with a maximum of 25 GB.
However, where there is 2 GB or less of physical memory, the value set is 50% of available memory with
a minimum value of 16 MB and a maximum value of 512 MB.
For Java 8
The Xmx value is half the available memory with a minimum of 16 MB and a maximum of 512 MB.
It seems that it is not suitable for JVM 11 or higher to statically allocate 50% heap.
Ref:
https://blog.openj9.org/2020/04/30/default-java-maximum-heap-size-is-changed-for-java-8/