A compreensão em profundidade da JVM: processo de carregamento de classe

Em primeiro lugar, o tipo de ciclo de vida

Em que a posição de fase ligação colectivamente grande caixa, depois de o processo de inicialização pode ser resolvido.

Em segundo lugar, o processo de carregamento de classe

1, Load

O primeiro passo no processo de carregamento de classe, principalmente para concluir as seguintes três coisas:

  1. Tal adquiriu definido pelo nome completo da classe de um fluxo de bytes binário
  2. Convertendo a estrutura de armazenamento estático fluxo de bytes representado pelo método de área de estrutura de dados de tempo de execução
  3. Gerando em memória um representante da classe de objecto de classe, tal como um método de acesso à área de entrada de dados

Um não-carregamento de classe matriz fase (classe fase de carga operação de aquisição de fluxo de bytes binário) é mais forte fase controlável, para completar este passo, também pode personalizar o carregador de classe para controlar o modo de obtenção da sequência de bytes (Substitui um carregador de classe  loadClass() métodos). tipo de matriz não é criada pelo carregador de classes, que criou diretamente pela Máquina Virtual Java.

Após a fase de carregamento é concluído, a JVM de acordo com um fluxo binário de bytes de armazenar o formato desejado na área do método.

Carregando fase e fase de conexão para a cruz.

2, a verificação

Esta fase irá determinar se JVM capaz de resistir a ataques maliciosos a partir do desempenho de execução em termos de subsistema de carga de trabalho fase de verificação da classe de carga JVM foi responsável por parte dela.

éªè¯é¶æ®μ示æå¾

3, a fase de preparação

Formalmente alocar memória para variáveis ​​de classe e variáveis ​​de classe definir o valor inicial do palco.

(1) compreende um variáveis ​​de classe alocação de memória (estático).

(2) O valor inicial de tipo classe é geralmente o valor padrão de zero.

4, a análise

Jvm a piscina constante simbólica é substituída por uma referência directa para um referência (campo apontador método classe na memória, o deslocamento) processo.

Principalmente para a classe ou interface, campos, classe de métodos, o método de interface, tipo de método, e chama a classe método pega qualificadores 7 referências simbólicas.

5, a inicialização

Esta é a última etapa de carregamento de classe, este é o código do programa java (bytecode) definido na implementação verdadeira aula de execução classe construtor <clinit> procedimento método.

<Clinit> operação de cópia é automaticamente compilado coleção de todas as variáveis ​​e bloco de fusão declaração classe estática de declarações.

Publicado 134 artigos originais · Louvor obteve 91 · vista 160 000 +

Acho que você gosta

Origin blog.csdn.net/weixin_44588495/article/details/104126638
Recomendado
Clasificación