public class Teste {
static {
System.out.println("Imprimir static");
}
public static void main(String[] args) {
}
}
Se você disassemblar (não existe esta palavra horrível, mas não lembrei de outra) uma classe Java, vai ver que este bloco de inicialização fica em um método chamado <clinit>. Este método não pode ser usado por nós programadores, é um método para inicialização dos campos estáticos e dos blocos estáticos. Ele é usado na primeira vez que uma classe é instanciada e é a primeira coisa que acontece, antes mesmo do construtor de uma instância.
Static é um trecho de código que é executado pelo tal de <clinit> que também inicializa os campos estáticos.
É semelhante ao que acontece nos construtores de instâncias que “colocam os campos dentro do construtor” logo após as chamadas super(). “Colocam” entre aspas porque na verdade os construtores executam os trechos de código que contém os campos (não estáticos) e também aqueles raramente utilizados inicializadores de instância (trechos de código entre {}, fora dos métodos e sem serem estáticos).
Ahhh! Entendido!!
Entao esse pedaço de codigo foi delcarado como static, entao ele é executado (inicializado) juntamento com os outros objetos staticos da classe…
Valeu pelo link Iron…
Toda essa regrinha de inicialização to ateh familiarizado… so nunca tinha visto esse tipo de inicialização, como vc disse Rafael, “bloco estatico”…
Camilinha, valeu por essa duvida que eu nunca ia descobrir que tinha rssss