oi boa noite. pra que serve o java virtual machine mais tecnicamente… sei que ele interpreta o codigo compilado…
Ela serve justamente para isso, interpretar o código compilado.
A princípio, cada máquina precisaria de um código compilado diferente. O que a VM faz, é traduzir o código compilado para ela, no código compilado para a máquina onde ela roda. Assim, você garante que um mesmo arquivo .class ou .jar, poderá rodar sem recompilação em diferentes máquinas.
A VM também tem algumas funções de otimização embutidas.
É parte da VM também o garbage collector, que faz a gerência de memória da sua aplicação.
Também é papel de algumas VMs (como as que rodam em browsers), garantir a segurança do byte-code. Isto é, que a aplicação Java não fará coisas que podem danificar o computador de quem a dispara.
Excelente explicação do colega Vini.
Completando, quando dizemos que roda em diferentes máquinas, queremos dizer também em outros equipamentos, como celulares, PDA,s etc. A JVM permite isto.
O garbage collector faz a coleta/limpeza do lixo que fica na memória sem utilizar, por exemplo espaço alocado de memória não utilizado.