O que é uma máquina virtual java?
Video: Como Instalar a máquina virtual Java
Conteúdo
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.
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.