Это потому, что Tomcat работает на виртуальной машине Java, в то время как другие языки либо компилируются, либо интерпретируются и работают на вашей реальной машине. Когда вы устанавливаете -Xmx и -Xms, вы говорите, что хотите, чтобы JVM работала как компьютер с количеством оперативной памяти где-то в заданном диапазоне.
Я думаю, что причина, по которой так много людей сталкивается с этим, заключается в том, что значения по умолчанию являются относительно низкими, и люди заканчивают тем, что довольно быстро достигают потолка по умолчанию (вместо того, чтобы ждать, пока у вас не закончится реальная память, как это было бы с другими языками) .