static{
String str = "Gostaria de estudar esse recurso";
/** Alguem poderia me ajudar.
*
**/
}
static{
String str = "Gostaria de estudar esse recurso";
/** Alguem poderia me ajudar.
*
**/
}
Esse recurso é chamado de bloco estático e bloco de inicialização.
Edit: O exemplo do @wldomiciano é perfeito
Se este bloco estiver declarado diretamente dentro do corpo de uma classe, então ele é um static initializer. É um bloco de código que é executado quando a classe é inicializada (ou seja, antes mesmo de qualquer instancia ser criada).
Veja mais: https://docs.oracle.com/javase/specs/jls/se10/html/jls-8.html#jls-8.7
Se vc tirar o static deixando apenas o bloco, então ele se torna um instance initializer, um bloco que é executado sempre que uma nova instancia da classe é criada. É executado antes mesmo do constructor.
Considere o código abaixo:
class Main {
Main() {
System.out.println("constructor");
}
{
System.out.println("instance initializer");
}
static {
System.out.println("static initializer");
}
public static void main(String[] args) {
new Main();
}
}
A saida será:
static initializer
instance initializer
constructor
Muito obrigado!