O que é uma máquina virtual java?

Video: Como Instalar a máquina virtual Java

Felizmente, você nunca tem que escrever ou decifrar bytecode Java. Escrevendo bytecode é o compilador&rsquo-s trabalho. Decifrar bytecode é a Máquina Virtual Java&rsquo-s trabalho.

Geralmente, os computadores don&rsquo-t executar instruções de bytecode Java. Em vez disso, cada tipo de processador do computador tem seu próprio conjunto de instruções executáveis, e cada sistema operacional do computador usa o processador&instruções rsquo-s em uma forma ligeiramente diferente.

&ldquo-A Máquina Virtual Java é executado o código (e outros povos&rsquo- código Java) em seu computador.”

- Barry Burd, Java For Dummies, 6ª Edição

listagens de exemplo Java

Aqui&rsquo-s uma situação hipotética: Imagine que você executar o sistema operacional Linux em um computador que tem um processador Pentium de idade. Seu amigo roda Linux em um computador com um tipo diferente de processador - um processador PowerPC. (Na década de 1990, Intel Corporation fez processadores Pentium e IBM fez processadores PowerPC.)

Video: Máquina Virtual Java e Compilador JIT

Este anúncio contém um conjunto de instruções para mostrar Olá Mundo! na tela do computador. As instruções trabalhar em um processador Pentium rodando o sistema operacional Linux.

.datamsg: .ascii "Olá, mundo! N"len =. - msg.text.global _start_start: movl $ len,% edxmovl $ msg,% ecxmovl $ 1,% ebxmovl $ 4,% eaxint $ 0x80movl $ 0,% ebxmovl $ 1,% eaxint $ 0x80

Aqui está outro conjunto de instruções para mostrar Olá Mundo! na tela. As instruções neste trabalho de listagem em um processador PowerPC rodando Linux.

.datamsg: .string "Olá, mundo! N"len =. - _start_start msg.text.global: li 0,4li 3,1lis 4, msg @ haaddi4,4, msg @ lli 5, lenscli 0,1li 3,1sc

As instruções aqui funcionar sem problemas em um processador Pentium. Mas estas instruções nada a um processador PowerPC dizer. Da mesma forma, outras instruções executar bem em um PowerPC, mas essas mesmas instruções são rabiscos completo a um computador com um processador Pentium. Então seu amigo&rsquo-s software PowerPC podem não estar disponíveis em seu computador. E seu computador Intel&-S rsquo software pode não funcionar em todos no seu amigo&rsquo-s computador.

Agora vá para o primo&rsquo-s casa. Seu primo&rsquo-s computador tem um processador Pentium (como a sua), mas seu primo&rsquo-s computador executa o Windows em vez de Linux. O que o seu primo&rsquo-s computador faz quando você alimentá-lo o código Pentium na Listagem 2-3? Ela grita, &ldquo-Not uma aplicação Win32 válida&rdquo- ou &ldquo-Windows podem&rsquo-t abrir este arquivo.&rdquo- Que confusão!

O que é bytecode Java?



bytecode Java cria fim de todo este caos. bytecode Java é algo como o código nas Listagens 2-3 e 2-4, mas isn bytecode Java&rsquo-T específica para um tipo de processador ou a um sistema operativo. Em vez disso, um conjunto de instruções de bytecode Java é executado em qualquer computador.

Video: Como Instalar o Java (JVM)

Se você escrever um programa Java e compilar esse programa Java em bytecode, em seguida, o computador pode executar o bytecode, seu amigo&computador rsquo-s pode executar o bytecode, sua avó&rsquo-s supercomputador pode executar o bytecode, e com alguma sorte, seu celular ou tablet pode executar o bytecode.

Com Java, você pode ter um arquivo de bytecode que você criou com um computador com Windows, copie o bytecode para sabe-se lá que tipo de computador, e depois executar o bytecode com nenhum problema em tudo. que&rsquo-s uma das muitas razões pelas quais Java tornou-se popular tão rapidamente. Esta característica marcante, que lhe dá a capacidade de executar código em muitos tipos diferentes de computadores, é chamado portabilidade.

O que a Máquina Virtual Java fazer?

O que torna bytecode Java tão versátil? Esta universalidade fantástica apreciado por programas Java bytecode vem do Java Virtual Machine. O Java Virtual Machine é uma daquelas três ferramentas que você deve ter em seu computador.

Imagine que você&rsquo-re representante do Windows para o Conselho de Segurança das Nações Unidas. (Veja a figura.) O representante Macintosh está sentado à sua direita, eo representante do Linux está à sua esquerda. O representante distinto de Java é no pódio. O representante Java está falando em bytecode, e nem você nem seus colegas embaixadores (Mac e Linux) compreender uma palavra de bytecode Java.

Mas cada um de vocês tem um intérprete. Seu intérprete traduz de bytecode para o Windows enquanto o representante Java fala. Outro intérprete traduz de bytecode para Macintosh-ese. E um terceiro intérprete traduz bytecode em Linux falar.

Pense no seu intérprete como um embaixador virtual. O intérprete doesn&rsquo-t realmente representar o seu país, mas o intérprete executa uma das tarefas importantes que um verdadeiro embaixador executa.

O intérprete ouve para bytecode em seu nome. O intérprete faz o que você faria se sua língua nativa foram bytecode Java. O intérprete finge ser o embaixador do Windows, e senta-se através do discurso bytecode chato, absorvendo cada palavra e processamento de cada palavra de uma maneira ou outra.

Você tem um intérprete - um embaixador virtual. Da mesma forma, um computador com Windows gere o seu próprio software de interpretação de bytecode. Esse software é o Java Virtual Machine.

Uma reunião imaginária do Conselho de Segurança da ONU.

Uma reunião imaginária do Conselho de Segurança da ONU.

A Java Virtual Machine é um proxy, um garoto de recados, um intermediário. A JVM serve como um intérprete de Java entre&rsquo-s bytecode run-em qualquer lugar e seu computador&rsquo-s próprio sistema. Enquanto ele é executado, a JVM anda seu computador através da execução de instruções de bytecode.

Video: Solución maquina virtual JAVA

O JVM examina seu bytecode, pouco a pouco, e executa as instruções descritas no bytecode. O JVM interpreta bytecode para o seu sistema Windows, o Mac, ou sua caixa de Linux, ou por qualquer tipo de computador que você&rsquo de reutilização. que&rsquo-s uma coisa boa. isto&rsquo-s o que faz programas Java mais portátil do que programas em qualquer outra língua.


Publicações relacionadas