Static dentro de classe

O que faz esse static dentro da classe?

[code] public class Teste{
static{

}
}[/code]
E qual é a diferença disso pra um construtor de classe?

Isso aí (bloco estático) é executado quando a classe é carregada. É bem diferente de um construtor, que é executado quando um objeto (uma instância) é criado.

O bloco static é executado uma única vez quando JVM
faz a primeira chamada a sua classe.

Creio que a principal diferença é que o bloco static funciona como um método sem argumentos e nem tipos de retorno, ao contrário dos construtores.

Valews pessoal :smiley:

Esse bloco “static” existe principalmente por causa do seguinte problema: imagine que você tem uma variável estática, mas cujo conteúdo é difícil de inicializar (por exemplo, durante a inicialização pode ser que seja gerada uma Exception.), e você não quer criar uma função estática só para inicializar a tal variável. Você pode mover essa inicialização para o bloco “static”. Por exemplo:

import java.awt.Font;
class Teste {
     static Font minhaFonte; // 
     static {
          try {
              minhaFonte = Font.createFont ("bla.ttf", Font.BOLD, 10.5f);
          } catch (.....) {
               ....
          }
     }
}