public class Teste
{
static
{
System.out.println("Começa...");
}
public Teste()
{
System.out.println("Objeto construído");
}
public static void main(String args[])
{
//new Teste();
}
}
Nunca havia visto um bloc static assim…Queria saber pra que isso é utilizado, em geral…Além disso, queria saber se existe algo semelhante para os outros modificadores…
Este é um bloco de inicialização estática. Será executado quando sua classe for referenciada pela primeira vez.
Você pode identificar isso fazendo um debug do código…
Algo static se refere à inicialização da classe e não do Objeto.
Desta forma, quando a vm inicializar a classe (antes de criar objetos), ele executará o conteúdo static dela. Incluindo este bloco de código, que as vezes é chamado de construtor static.
Já vi situações em que este construtor era utilizado quando uma configuração ou recurso do sistema era indispensável para o sistema. Desta forma, antes dos objetos serem criados era verificada a existência e disponibilidade destes recursos.
[quote=kinow]…
Já vi situações em que este construtor era utilizado quando uma configuração ou recurso do sistema era indispensável para o sistema. Desta forma, antes dos objetos serem criados era verificada a existência e disponibilidade destes recursos.
[]sssss[/quote]
Focão, de uma olhada no link postado pelo thingol, é completamente diferente do que vc está citando, pois aí vc só esta inicializando uma variável estática com modificador de acesso default, não é um bloco de código estático que é o ítem à que o tópico se refere.