Arquitetura JVM | Explicado

Arquitetura JVM | Explicado
A JVM é uma máquina abstrata que é usada para executar programas Java. Em Java, o código -fonte é convertido em bytecode, que depois de ser convertido em um código de máquina é transferido para a memória pela máquina virtual Java. Em resumo, a JVM fornece um ambiente de tempo de execução para a execução do Java ByteCode, que o torna um componente do Java Runtime Environment (JRE). No geral, uma JVM é responsável pelo carregamento, vinculação e inicialização.

Arquitetura JVM

A arquitetura interna da máquina virtual Java consiste em três partes principais.

1. Classloader

2. Área de memória

3. Engine de execução

Aqui está uma representação visual da arquitetura da JVM.

Abaixo de todas as partes da máquina virtual Java são explicadas em detalhes.

Classloader

Um carregador de classe na JVM refere -se a um subsistema responsável por carregar arquivos. Ele carrega um programa Java toda vez que executamos um programa Java. Java fornece os seguintes carregadores de classe.

a. Bootstrap Classloader

Uma superclasse de carregador de classe de extensão responsável por carregar o RT.arquivo jar

b. Carregador de classe de extensão

Um filho do carregador de classe de bootstrap e pai do sistema de classe/classe de aplicativo, a classe de extensão carrega arquivos de jar que são salvos no diretório.

c. Sistema/Aplicativo Classloader

Este carregador de classe carrega arquivos de classe do ClassPath e é um filho da classe de extensão.

Área de memória

Uma área de memória da JVM consiste nas seguintes peças.

a. Área de método

O objetivo da área do método é salvar a estrutura de classes como dados de métodos ou dados de campo, pool de tempo de execução e código para métodos.

b. Pilha

Heap é uma área de dados de tempo de execução onde os objetos são alocados.

c. Pilhas

A Stack é responsável por armazenar quadros, variáveis ​​locais e resultados parciais. Ele desempenha um papel importante na invocação do método e retorno de método. Toda vez que um tópico é criado, uma pilha de JVM privada para esse tópico em particular é criada simultaneamente e um novo quadro é criado toda vez que um método é invocado e, assim que a invocação terminar, o quadro é destruído.

d. Registros de PC

É responsável por manter os endereços enquanto as instruções da JVM estão sendo executadas.

e. Pilhas de método nativo

É responsável por manter todos os métodos nativos necessários em um aplicativo.

Engine de execução

Um mecanismo de execução consiste no seguinte.

a. Intérprete

Ele executa instruções depois de ler o fluxo de bytecode.

b. Compilador Just-In-Time (JIT)

O JIT aprimora o desempenho compilando partes do bytecode com funcionalidades semelhantes ao mesmo tempo, a partir de agora, reduzindo o tempo geral de compilação.

c.Coletor de lixo

É usado para coletar objetos que não são referenciados e removê -los para liberar a memória.

Interface do método nativo

Ajuda a se comunicar com aplicações escritas em diferentes idiomas como C, C ++, etc. Também é responsável por ajudar o código Java em execução na JVM a chamar bibliotecas e aplicativos nativos.

Bibliotecas de métodos

Consiste em bibliotecas nativas (C, C ++) necessárias para o mecanismo de execução.

Conclusão

Java Virtual Machine (JVM) é uma máquina abstrata que é construída para executar programas Java. A arquitetura da JVM compreende três peças principais que são carregadores de classe, área de memória e um mecanismo de execução. A área de memória e o mecanismo de execução consistem ainda em algumas peças que têm funcionalidades diferentes. Este tutorial explica a arquitetura da Java Virtual Machine (JVM) destacando as funções de seus diferentes componentes.