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:
- Tal adquiriu definido pelo nome completo da classe de um fluxo de bytes binário
- 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
- 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.