A JVM devolve memória livre ao sistema operacional quando não é mais necessário?

Eu tenho um aplicativo que precisa temporariamente de uma certa quantidade de memória / heap para alguns processos. Dado um valor razoável do tamanho máximo de heap para a JVM como uma opção, a JVM começa com um pouco de heap e solicita mais memória do SO sob demanda.

Minha pergunta é: se essa memória adicional será devolvida pela JVM ao SO (por exemplo, para outros processos) quando não houver mais necessidade de muita memória pelo meu aplicativo. Atualmente, meu aplicativo parece manter essa memória para sempre, mesmo quando não é mais necessário.

questionAnswers(3)

yourAnswerToTheQuestion