Pra que serve a Java Virtual Machine mais tecnicamente.. o que faz?

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. :slight_smile:

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.