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.
Se falei abobrinha, me corrijam.
[]s
Luca
brlima
portanto static , nesse caso, é um método ? Chamado pela tal clinit ?
Luca
Olá
Bruno, nananinanão!
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).
[]s
Luca
brlima
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