Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

JVM | O que é Java Virtual Machine e sua arquitetura

O que é JVM?


Máquina Virtual Java (JVM) é um mecanismo que fornece ambiente de tempo de execução para conduzir o código Java ou aplicativos. Ele converte bytecode Java em linguagem de máquina. A JVM faz parte do Java Runtime Environment (JRE). Em outras linguagens de programação, o compilador produz código de máquina para um determinado sistema. No entanto, o compilador Java produz código para uma máquina virtual conhecida como Java Virtual Machine.

Veja como a JVM funciona


Primeiro, o código Java é compilado em bytecode. Este bytecode é interpretado em diferentes máquinas

Entre o sistema host e a fonte Java, o Bytecode é uma linguagem intermediária.

A JVM em Java é responsável por alocar espaço de memória.





Neste tutorial da JVM, você aprenderá
  • Arquitetura JVM
  • Processo de compilação e execução de código de software
  • Processo de compilação e execução de código C
  • Processo de compilação e execução de código Java
  • Por que Java é uma linguagem interpretada e compilada?
  • Por que o Java é lento?

Arquitetura JVM


Agora, neste tutorial da JVM, vamos entender a Arquitetura da JVM. A arquitetura JVM em Java contém carregador de classes, área de memória, mecanismo de execução etc.





1) ClassLoader

O carregador de classes é um subsistema usado para carregar arquivos de classe. Ele executa três funções principais viz. Carregando, Vinculando e Inicializando.

2) Área de Método

A JVM Method Area armazena estruturas de classe como metadados, o conjunto de tempo de execução constante e o código para métodos.

3) Pilha

Todos os objetos, suas variáveis ​​de instância relacionadas e arrays são armazenados no heap. Essa memória é comum e compartilhada em vários threads.

4) Pilhas de linguagem JVM

As pilhas da linguagem Java armazenam variáveis ​​locais e seus resultados parciais. Cada encadeamento tem sua própria pilha JVM, criada simultaneamente à medida que o encadeamento é criado. Um novo quadro é criado sempre que um método é invocado e é excluído quando o processo de invocação do método é concluído.

5) Registros de PC

O registrador do PC armazena o endereço da instrução da máquina virtual Java que está sendo executada no momento. Em Java, cada thread tem seu registrador PC separado.

6) Pilhas de métodos nativos

As pilhas de métodos nativos mantêm a instrução do código nativo dependendo da biblioteca nativa. Está escrito em outra linguagem em vez de Java.

7) Mecanismo de execução

É um tipo de software usado para testar hardware, software ou sistemas completos. O mecanismo de execução de teste nunca carrega nenhuma informação sobre o produto testado.

8) Interface de método nativo

A Interface de Método Nativo é uma estrutura de programação. Ele permite que o código Java que está sendo executado em uma JVM seja chamado por bibliotecas e aplicativos nativos.

9) Bibliotecas de métodos nativos

Bibliotecas nativas é uma coleção de bibliotecas nativas (C, C++) que são necessárias para o mecanismo de execução.

Processo de compilação e execução de código de software


Para escrever e executar um programa de software, você precisa do seguinte

1) Editor – Para digitar seu programa, um bloco de notas pode ser usado para isso

2) Compilador – Para converter seu programa de alta linguagem em código de máquina nativo

3) Vinculador – Para combinar diferentes referências de arquivos de programa em seu programa principal.

4) Carregador - Para carregar os arquivos do seu dispositivo de armazenamento secundário como disco rígido, unidade flash, CD na RAM para execução. O carregamento é feito automaticamente quando você executa seu código.

5) Execução – Execução real do código que é tratado pelo seu sistema operacional e processador.

Com esse histórico, consulte o vídeo a seguir e aprenda o funcionamento interno da JVM e a arquitetura da JVM (Java Virtual Machine).


Clique aqui se o vídeo não estiver acessível

Processo de compilação e execução de código C


Para entender o processo de compilação Java em Java. Vamos primeiro dar uma olhada rápida no processo de compilação e vinculação em C.

Suponha que no principal, você tenha chamado duas funções f1 e f2. A função principal é armazenada no arquivo a1.c.



A função f1 é armazenada em um arquivo a2.c



A função f2 é armazenada em um arquivo a3.c



Todos esses arquivos, ou seja, a1.c, a2.c e a3.c, são alimentados ao compilador. Cuja saída são os arquivos objeto correspondentes que são o código de máquina.



A próxima etapa é integrar todos esses arquivos de objeto em um único arquivo .exe com a ajuda do vinculador. O vinculador reunirá todos esses arquivos e produzirá o arquivo .exe.



Durante a execução do programa, um programa carregador carregará um arquivo .exe na RAM para a execução.


Compilação e execução de código Java em Java VM


Agora, neste tutorial de JVM, vamos ver o processo para JAVA. No seu main, você tem dois métodos f1 e f2.
  • O método principal é armazenado no arquivo a1.java
  • f1 é armazenado em um arquivo como a2.java
  • f2 é armazenado em um arquivo como a3.java



O compilador compilará os três arquivos e produzirá 3 arquivos .class correspondentes que consistem em código BYTE. Ao contrário de C, nenhuma vinculação é feita .

A Java VM ou Java Virtual Machine reside na RAM. Durante a execução, usando o carregador de classes, os arquivos de classe são trazidos para a RAM. O código BYTE é verificado para qualquer violação de segurança.



Em seguida, o mecanismo de execução converterá o Bytecode em código de máquina nativo. Isso é apenas na hora de compilar. É uma das principais razões pelas quais o Java é comparativamente lento.



OBSERVAÇÃO: JIT ou compilador Just-in-time é parte da Java Virtual Machine (JVM). Ele interpreta parte do Byte Code que possui funcionalidade semelhante ao mesmo tempo.

Por que Java é uma linguagem interpretada e compilada?


As linguagens de programação são classificadas como
  • Linguagem de Nível Superior Ex. C++, Java
  • Linguagens de nível médio Ex. C
  • Linguagem de baixo nível Ex Assembly
  • finalmente o nível mais baixo como linguagem de máquina.

Um compilador é um programa que converte um programa de um nível de linguagem para outro. Exemplo de conversão de programa C++ em código de máquina.

O compilador java converte código java de alto nível em bytecode (que também é um tipo de código de máquina).

Um intérprete é um programa que converte um programa em um nível para outra linguagem de programação no mesmo nível. Exemplo de conversão de programa Java em C++

Em Java, o gerador do Just In Time Code converte o bytecode no código de máquina nativo que está nos mesmos níveis de programação.

Portanto, Java é tanto uma linguagem compilada quanto interpretada.

Por que o Java é lento?


As duas principais razões por trás da lentidão do Java são
  1. Vinculação dinâmica: Ao contrário do C, a vinculação é feita em tempo de execução, toda vez que o programa é executado em Java.
  2. Intérprete em tempo de execução: A conversão de código de byte em código de máquina nativo é feita em tempo de execução em Java, o que diminui ainda mais a velocidade

No entanto, a versão mais recente do Java abordou os gargalos de desempenho em grande medida.

Resumo :
  • A forma completa da JVM é a Java Virtual Machine. A JVM em Java é o mecanismo que impulsiona o Código Java. Ele converte bytecode Java em linguagem de máquina.
  • A arquitetura JVM em Java contém carregador de classes, área de memória, mecanismo de execução etc.
  • Na JVM, o código Java é compilado em bytecode. Este bytecode é interpretado em diferentes máquinas
  • JIT significa compilador Just-in-time. JIT é a parte da Java Virtual Machine (JVM). É usado para acelerar o tempo de execução
  • Em comparação com outras máquinas compiladoras, a JVM em Java pode ser lenta na execução.

Java

  1. O que é CNC?
  2. Java 10 - Handshake local de thread
  3. O que é torneamento de máquina?
  4. O que é projeto de arquitetura?
  5. O que é um parafuso de máquina?
  6. O que é uma máquina giratória?
  7. O que é uma máquina de venda automática de leite?
  8. O que é uma Mandrilhadora Horizontal?
  9. O que é uma máquina de prensa automática?
  10. O que é manutenção de máquina