Pergunta

O que é isto?

public class ABC {
   public ABC() {
         System.out.println("world");
   }
   static {
         System.out.println("hello");
   }
}

Imprimir: Hello World

Eu realmente não entendo isso, ou que tipo de método esse código estático é.

Foi útil?

Solução

É chamado de "bloco de inicialização estática".

Ele é executado quando a classe é carregada pela primeira vez; apenas uma vez.

Por exemplo, um construtor será executado sempre que a classe for instanciada; O bloco estático é executado apenas uma vez, quando é carregado estaticamente pelo carregador VM/classe.

Outras dicas

Eu acho que vale a pena notar que o bloco estático será executado exatamente uma vez que cada vez que um carregador de classe carregar uma classe. Isso significa que, se você tiver mais de um carregador de classe, o bloco poderá executar mais de uma vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top