A coluna vmstat free
está relatando a quantidade de memória física (RAM) que não contém nada usado ou utilizável pelo sistema, para que possa ser alocado imediatamente.
O heap Java usado bytes está representando a quantidade de memória virtual que contém dados reais (objetos).
Dado o fato de que a memória virtual pode estar presente na RAM, no disco (arquivos ou swap) ou em nenhum lugar, você não pode comparar com confiabilidade a RAM e o uso de memória virtual.