[RESOLVIDO]o que significa static{}?

Blz pessoal,
perguntinha básica
o que significa o código abaixo?

private static PropertyResourceBundle prb;
static{
     prb = (PropertyResourceBundle)ResourceBundle.getBundle("br/com/kl");
}

me refiro especificamente ao static{com alguma coisa dentro}…
nada de variavel estática nem método estático.

Valeu.

significa que o que estiver dentro deste bloco sera executado primeiro na classe… antes de qualquer coisa… ate mesmo do construtor…

é um bloco estatico… que vc criar para ser executado na primeira vez que a classe é carregada…

Qual utilidade disso?
vc pode colocar algo para executar apenas quando aquela classe for carregada… tipo quando a classe X for carregada inicie a conexao com o banco de dados…

Dei o exemplo acima para vc entende mais a ideia de bloco static :smiley:

flw!
pesquise tb sobre bloco de instancia!!

Essa eu nem imaginava que existia. Vivendo e aprendendo!

Esse tal bloco de instância eh explicado no livro Java - How to Program, do Deitel?

http://vidageek.net/2008/03/10/inc-pre-construtores/

Por exemplo… se fores ver em qualquer código de um Driver JDBC, a class q é carrega com o:

Class.forName("org.database.Driver")

Esta classe… tem isto… um static {}. Assim:

static { try { DriverManager.registerDriver(INSTANCE); } catch (SQLException e) { ... } }

Ou seja no primeiro acesso o Static é executado, e regista a Classe do Driver no JDBC…

Seja por fazer um:

java.lang.Math.round(2.1);

Se a class java.lang.Math tiver um static { } vai ser executado…

E o mesmo para:

Class.forName("java.lang.Math")

:wink:

Alguem ja utilizou o pre-construtor { } (sem static)}

Eu nunca vi em nenhum projeto q ja pude estudar.

[quote=peczenyj]Alguem ja utilizou o pre-construtor { } (sem static)}

Eu nunca vi em nenhum projeto q ja pude estudar.[/quote]

bom assim nunca vi mais posso imaginar da seguinte forma o {} -referente a instancia… ele é executado sempre que vc dar u mnew… vai ser chamado… entao pode ser que quando criar novos objetos ele venha servir para chamar um metodo… de outra classe e informar que foi criado um novo objeto… ou algo do tipo… mais assim… a essencia dele é sempre que algo novo acontecer ele vai executar…

hehe se alguem tiver uma aplicacao com a essencia dele seria interessante postar…

[quote=brunoha]Essa eu nem imaginava que existia. Vivendo e aprendendo!

Esse tal bloco de instância eh explicado no livro Java - How to Program, do Deitel?[/quote]

Permita-me que faça das suas palavras as minhas

Obrigado galera…
entendi…