JVM maxHeapSize and InitialHeapSize are not reflected in htop

I have a linux machine where I’m running a Java application.
I’m running the jvm with those parameters: -Xmx27231m -Xms27231m

However when I look at htop/top.
What I see for the system overall and the process specifically is that the jvm is actually not reserving the 27GB of heap I’m asking it to.
What I see instead is that
Virt: 32.8G
RES: 15.3G

In all my other prod/qa/dev machines the RES reflects the exact amount (maybe a bit more) as the heap size I’m asking JVM to reserve for me.
However for one particular machine this is not the case.
I’m clueless of why this is happening.

I attached Java Mission Control to that process and I see that the InitialHeapSize and the MaxHeapSize actually have the correct value, however the type is not CommandLine but Ergonomic instead. I don’t really know what that means.