Definição:
- Um bloco estático é um trecho de código que é executado quando a classe é carregada pela primeira vez pela JVM.
- É utilizado para inicializar variáveis estáticas ou realizar tarefas que precisam ser concluídas antes que a classe possa ser utilizada.
Propósito:
- Pode ser usado para executar inicializações importantes, como estabelecer conexões ou calcular valores iniciais.
- Útil para preparar a classe antes que qualquer instância seja criada ou antes que métodos estáticos sejam chamados.
Execução:
- O bloco estático é executado apenas uma vez, logo que a classe é carregada, antes de qualquer outro código relacionado à classe.
- Ele é executado mesmo que nenhum objeto da classe seja criado.
Exemplo de Código com Bloco Estático:
StaticBlock.java
// Usa um bloco estático
class StaticBlock {
static double rootOf2;
static double rootOf3;
// Bloco estático para inicialização
static {
System.out.println("Inside static block.");
rootOf2 = Math.sqrt(2.0);
rootOf3 = Math.sqrt(3.0);
}
StaticBlock(String msg) {
System.out.println(msg);
}
}
class SDemo3 {
public static void main(String args[]) {
StaticBlock ob = new StaticBlock("Inside Constructor");
System.out.println("Square root of 2 is " + StaticBlock.rootOf2);
System.out.println("Square root of 3 is " + StaticBlock.rootOf3);
}
}
- A mensagem "Inside static block." mostra que o bloco estático foi executado antes da criação do objeto StaticBlock.
- Os valores de rootOf2 e rootOf3 são calculados no bloco estático e estão disponíveis antes da execução de qualquer método ou construção de objeto.
Vantagem dos Blocos Estáticos:
Garantem que certas inicializações sejam feitas de maneira segura e no momento adequado, antes que a classe seja utilizada.
Uso Comum:
- Iniciar variáveis estáticas complexas ou executar configuração inicial de recursos que a classe precisa.
Top comments (0)