O que você deve saber sobre o Java Virtual Machine?



Este blog irá cobrir o conceito de máquina virtual java em detalhes com os componentes de sua arquitetura e as principais diferenças entre JVM, JRE e JDK

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?

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.

jvm - máquina virtual java - edureka

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.

  1. JDK significa kit de desenvolvimento Java e JRE significa Java runtime environment.
  2. JDK é para desenvolvimento, enquanto JRE é para ambiente de tempo de execução.
  3. JVM é uma parte essencial do JDK e JRE para executar qualquer programa Java.
  4. 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.