a linguagem é um gigante na indústria de TI há muito tempo. Possui alguns conceitos de primeira linha que o tornam melhor do que o resto da linguagem de programação. Um desses conceitos é a máquina virtual Java, neste artigo, aprenderemos sobre os vários aspectos da máquina virtual em detalhes. A seguir estão os tópicos discutidos neste blog:
- O que é Java Virtual Machine?
- Por que precisamos do Java Virtual Machine?
- Arquitetura de máquina virtual Java
- Processo de Execução
- Diferença entre JDK, JRE e JVM
O que é Java Virtual Machine?
A máquina virtual Java é uma máquina abstrata independente de plataforma que fornece um ambiente de tempo de execução no qual o código de bytes Java é executado.
É uma parte do Java Runtime Environment que converte o bytecode Java em linguagem legível por máquina. O principal que temos em um programa Java é realmente chamado pela máquina virtual Java.
Por que precisamos do Java Virtual Machine?
Precisamos da máquina virtual Java para as tarefas que ela realiza, extremamente necessárias para qualquer desenvolvimento que envolva Java. A seguir estão algumas tarefas que a máquina virtual Java executa.
- Carrega o código
- Verificação de código
- Execução do código
- Ele fornece o ambiente de tempo de execução para os aplicativos
- Área de memória
- Conjunto de registro
- Fornece uma pilha de coleta de lixo
- Relatório de erros fatais
- Fornece uma classe formato de arquivo
Com todas essas operações, a máquina virtual Java é parte integrante do desenvolvimento Java. Vamos tentar entender como isso funciona com a ajuda da arquitetura da máquina virtual Java.
Arquitetura de máquina virtual Java
A arquitetura da máquina virtual Java é bastante simples, possui uma área de memória, um carregador de classes e um mecanismo de execução entre outros componentes. vamos discutir cada um deles em detalhes.
c ++ fibonacci recursivo
ClassLoader
É um subsistema usado para carregar arquivos de classe. Sempre que executamos um programa em java, ele é primeiro carregado pelo ClassLoader. a função principal inclui inicialização, vinculação e carregamento. A seguir estão os carregadores de classe integrados em Java.
Bootstrap ClassLoader - É a superclasse de Extension ClassLoader que carrega o arquivo rt.jar.
Extensão ClassLoader - Carrega os arquivos jar localizados no diretório.
Sistema / Aplicativo ClassLoader - Carrega os arquivos de classe do caminho de classe.
Operação de carregamento - Primeiro, o classLoader carrega os arquivos .class e gera os dados correspondentes no formato binário que são salvos na área do método.
Operação de ligação - Depois de carregar prepara, verifica e faz resolução. JVM aloca a memória para variáveis de classe e inicializa a memória para os valores padrão. Ele garante a correção do arquivo .class e quando a verificação falha, obtemos o erro de exceção de tempo de execução.
Inicialização - Todas as variáveis estáticas são atribuídas com seus valores definidos no bloco de código nesta fase.
Memória JVM
Área de Método - Ele armazena as estruturas de cada classe, como código, dados de campo, pool de constantes de tempo de execução, dados de método, etc.
Heap - Os objetos são alocados no tempo de execução no heap.
Pilhas de linguagem JVM - Ele armazena variáveis locais e resultados. Ele desempenha um papel importante ao invocar e retornar resultados. Sempre que um método é invocado, um quadro é criado e destruído assim que a invocação termina ou é concluída.
Registros de PC - Ele possui o endereço ou localização da instrução JVM que está sendo executada.
Pilhas de método nativo - Todos os métodos nativos usados nos aplicativos estão presentes nas pilhas de métodos nativos.
Motor de Execução - Um mecanismo de execução contém um processador virtual, um interpretador e um JIT compilador.
classe pojo em java com exemplo
Método nativo Interface - É um que fornece.
Agora que entendemos a arquitetura da JVM, vamos dar uma olhada no processo de execução e compilação do código.
Processo de Execução
As etapas a seguir ocorrem durante a execução e compilação de um código Java.
- O método principal é armazenado em um único arquivo e outros métodos são armazenados em arquivos diferentes.
- Após a compilação, ele fornecerá os arquivos .class correspondentes que terão o código de byte sem qualquer link, ao contrário de C.
- Durante a execução, os arquivos de classe são verificados quanto a quaisquer violações usando o Classloader.
- Depois disso, o bytecode é convertido no código de máquina nativo correspondente. Esta também é a razão pela qual Java é comparativamente mais lento.
Agora que sabemos como a execução funciona, vamos dar uma olhada na diferença entre JDK, JRE e JVM.
Diferença entre JDK, JRE e JVM
A seguir estão algumas diferenças importantes entre JDK , JVM e JRE.
- JDK significa kit de desenvolvimento Java e JRE significa Java runtime environment.
- JDK é para desenvolvimento, enquanto JRE é para ambiente de tempo de execução.
- JVM é uma parte essencial do JDK e JRE para executar qualquer programa Java.
- JVM é parte integrante da programação Java e fornece independência de plataforma.
Isso nos leva ao final deste artigo, onde aprendemos sobre a máquina virtual Java em detalhes. Espero que você tenha esclarecido tudo o que foi compartilhado com você neste tutorial.
Se você achou este artigo sobre 'Java Virtual Machine' relevante, verifique o Edureka , uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.
Estamos aqui para ajudá-lo em cada etapa da sua jornada e criar um currículo que é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi desenvolvido para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java, como Hibernate e Spring.
Se tiver alguma dúvida, fique à vontade para fazer todas as suas perguntas na seção de comentários de “Java Virtual Machine” e nossa equipe terá prazer em responder.