Почему существует разница в использовании памяти между xmx и top?

Я установил xmx для jvm равным 4 G, но после запуска в течение некоторого времени, когда я использую top, чтобы увидеть память, он показывает, что процесс использовал 12 G памяти.

Так что же на самом деле означает xmx? Что мне делать, если я хочу ограничить память JVM до 4 G?

командная строка: -сервер -Xms4g -Xmx4g

И еще один связанный с этим вопрос :)

Если произойдет gc, JVM неизбежно освободит пространство объектов, которые больше не использовались в молодом поколении? или некоторые из них ушли к следующему gc?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос