Static { }

pow quando que esse método é chamado numa classe?
em que situações eu posso usar?

Hã?

eh…

static
{
BorderCorrigida = BorderFactory.createLineBorder(Color.red);
}

Me corrijam, caso eu esteja errado.

Tudo que estiver dentro de:

static{
//…
}

será a primeira coisa a ser executada em sua classe.

O bloco Static {} é executado uma única vez, quando o classLoader carrega a sua classe. É diferente do construtor.

Abraço.

É executado assim que o ClassLoader carrega a classe. É a primeira coisa que acontece na classe, antes mesmo do contrutor.

Aproveitando a deixa…
Poderiam dar exemplos da aplicabilidade do bloco Static { }?
Em que momento usá-lo?
E o porquê usá-lo?

Abraço a todos.

gente agradeço a todos as respostas,
e reforço o pedido do bland

abraços

Exemplo aplicabilidade: Singleton , Factory. ( Design pattern ).
*Há como fazer sem utilizar static{} mas tudo bem.

Em que momento usar?
Quando você precisa garantir que algo esteja lá
antes mesmo do seu construtor ser invocado.

E porque usa-lo?
Respondi acima.

[s]ao :thumbup:

Inicializar variáveis static final

 public class Teste { 
	 public static final Map<String, Integer> numeros;
	 static {
		 System.out.println("Executando static");
		 numeros = new HashMap<String, Integer>();
		 numeros.put("zero", 0);
		 numeros.put("um", 1);
	 	 numeros.put("dois", 2);
	 }
	 
	 Teste() {
		 System.out.println("Executando construtor " + numeros.get("zero"));
	 }
	 
	 public static void main(String[] args) {
		System.out.println("Executando main " + numeros.get("um"));
		Teste teste = new Teste();
	}
 }
static
{
BorderCorrigida = BorderFactory.createLineBorder(Color.red);
}

não é um método, mas sim um bloco de código da classe… é carregado apenas uma vez no programa, exatamente quando a classe for carregada pela JVM, o bloco executa

gente, valeu!!!

abraços :smiley: