Máquina virtual Java (eminglês:Java Virtual Machine,JVM) é um programa que carrega e executa os aplicativosJava, convertendo osbytecodes em código executável de máquina. A JVM é responsável pelo gerenciamento dos aplicativos, à medida que são executados.
Graças à máquina virtual Java, os programas escritos em Java podem funcionar em qualquer plataforma de hardware e software que possua uma versão da JVM, tornando assim essas aplicações independentes da plataforma onde funcionam.
A máquina virtual Java é um computador abstrato (virtual) definido por uma especificação. Oalgoritmo de coleta de lixo usado e qualquer otimização interna das instruções da máquina virtual Java (sua tradução emcódigo de máquina) não são especificados. A principal razão para essa omissão é não restringir desnecessariamente os implementadores. Qualquer aplicativo Java pode ser executado apenas dentro de alguma implementação concreta da especificação abstrata da máquina virtual Java.[1]
Começando comJava Platform, Standard Edition (J2SE) 5.0, as mudanças na especificação JVM foram desenvolvidas sob oJava Community Process como JSR 924.[2] A partir de 2006, as mudanças nas especificações para suportar as mudanças propostas para o formato do arquivo de classe (JSR 202) estão sendo feitas como uma versão de manutenção do JSR 924.[3]
No início da vida útil da plataforma Java, a JVM foi comercializada como uma tecnologia da web para a criação de aplicativos ricos para a Internet. A partir de 2018, a maioria dos navegadores da web e sistemas operacionais que empacotam navegadores da web não são enviados com umplug-in Java, nem permitem o side-loading de qualquer plug-in não Flash. O plugin do navegador Java foi preterido no JDK 9.[4]
Em junho de 2015, de acordo com a W3Techs, o uso de miniaplicativos Java eSilverlight caiu para 0,1% cada para todos os sites, enquanto o Flash caiu para 10,8%.[5]
A arquitetura de JVM permite um controle muito fino sobre as ações liberadas para o código que está rodando na VM. Isso permite a execução de código confiável de fontes remotas, um modelo usado pelosapplets. Osapplets rodam dentro de uma VM incorporada aobrowser do usuário, executando código baixado de um servidorHTTP remoto. O código remoto roda em umasandbox, que protege o usuário de códigos maliciosos. O autor doapplet pode aplicar um certificado para assinar digitalmente o applet como "seguro", dando a ele permissão de sair dosandbox e acessar livremente a máquina onde está rodando.
Referências
|
---|
Plataforma Java | | |
---|
Tecnologias Sun | |
---|
Tecnologias de plataforma | |
---|
Principais tecnologias de terceiros | |
---|
Linguagens de programação | |
---|
Framework | |
---|
Conferências Java | |
---|