-Xmx
просто сообщает JVM, сколько памяти он может использовать для своей внутренней кучи.
JVM нужна память для других целей (постоянная генерация, временное пространство и т. Д.), А также, как и для каждого двоичного файла, в котором она нуждаетсяместо для его собственного двоичного кода, плюс любые библиотеки / DLL /. так он загружается.
Цитируемые вами 144 МБ, вероятно, содержат, по крайней мере, некоторые из этих других использований памяти.
Как вы измерилииспользование памяти?В современных ОС, использующих виртуальную память, измерение использования памяти процессом не является тривиальным и не может быть выражено как одно значение.