Este artigo estuda principalmente citações ativas e passivas de classes em Java, conforme detalhado abaixo.
Citação ativa , aqui estão cinco cenários de citação ativa
1. Ao encontrar as quatro instruções de bytecode de novas, getstatic, putstatic e invocestático, se a classe não for inicializada, ela será inicializada, criará um objeto, ler ou definir campos estáticos e chamar métodos estáticos.
2. Reflexão
3. A classe pai será inicializada antes da inicialização da subclasse.
4. Uma classe que contém o método principal será inicializada quando a máquina virtual iniciar.
5. Ao usar o suporte dinâmico da linguagem do JDK (desconhecido)
Citação passiva :
classe superclass {static {syso ("super init"); } public static int vale = 123;} A subclasse da classe estende a superclass {static {Syso ("sub init")}} public class ConstantClass {public static final hw = "helloworld";} classe pública notinitialization {main () {Syso (Subclass.Value) // Superclass sc [] sc [] sc [] (sys) /sclass. //syso(constantClass.hw);}} Saída: super init 123 Somente a classe que define diretamente esse campo será inicializada para acesso a campos estáticos. A subclasse não será inicializada. O primeiro comentário é cancelado e é executado sem qualquer saída. A classe de referência através da definição da matriz não acionará a inicialização da classe, mas inicializará a inicialização de uma subclasse gerada automaticamente pela máquina virtual e herdada da classe de objeto. Esta classe representa uma matriz. As propriedades e métodos da matriz são implementados nesta classe (atributos de comprimento e clone ()). Não haverá saída após o cancelamento do segundo comentário. A constante será colocada no pool constante durante a compilação. ConstantClass.hw é colocado no pool constante da classe de notinitialização durante a compilação. A notinitialização não tem uma referência simbólica à notinitialização.
O exposto acima é sobre a breve discussão deste artigo sobre citações ativas e passivas para as aulas em Java, e espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!