Máquina virtual Java (em Predefinição:Língua com nome) é um programa que carrega e executa os aplicativos Java, convertendo os bytecodes 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.
Especificação JVM
A máquina virtual Java é um computador abstrato (virtual) definido por uma especificação. O algoritmo de coleta de lixo usado e qualquer otimização interna das instruções da máquina virtual Java (sua tradução em có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 com Java Platform, Standard Edition (J2SE) 5.0, as mudanças na especificação JVM foram desenvolvidas sob o Java 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 um plug-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 e Silverlight caiu para 0,1% cada para todos os sites, enquanto o Flash caiu para 10,8%.[5]
Execução segura do código remoto
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 pelos applets. Os applets rodam dentro de uma VM incorporada ao browser do usuário, executando código baixado de um servidor HTTP remoto. O código remoto roda em uma sandbox, que protege o usuário de códigos maliciosos. O autor do applet pode aplicar um certificado para assinar digitalmente o applet como "seguro", dando a ele permissão de sair do sandbox e acessar livremente a máquina onde está rodando.
Ver também
Referências
- ↑ Venners, Bill. «Free Online Chapters of Inside the Java Virtual Machine». Artima. Chapter 5. Consultado em 5 de dezembro de 2020
- ↑ «The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 924». www.jcp.org. Consultado em 5 de dezembro de 2020
- ↑ «The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 202». www.jcp.org. Consultado em 5 de dezembro de 2020
- ↑ Staff, Ars (28 de janeiro de 2016). «Oracle deprecates the Java browser plugin, prepares for its demise». Ars Technica (em English). Consultado em 5 de dezembro de 2020
- ↑ «Historical yearly trends in the usage statistics of client-side programming languages for websites, December 2020». w3techs.com. Consultado em 5 de dezembro de 2020
Ligações externas
- «Especificações da JVM» (em English)
- «Segunda edição da especificação da JVM» (em English)
- «Grupo sobre Java HotSpot Virtual Machine» (em English)
- «Descargar máquina virtual Java» (em English)
- «OpenSource JDK» (em English)