Tic Tac Toe

Oi,
Pessoal eu tava lendo o código do Tic Tac Toe disponível na pasta demo do sdk e fique com dúvida na sequinte declaração:

   static {
	isWon((1 << 0) | (1 << 1) | (1 << 2));
...
    }

Qual a função da declaração static{…} e do operador | ?

grato

static serve pra vc colocar código que deve ser executado quando a classe é carregada pelo classloader.
a barra | é o operador lógico OU

lehphyro,
Operador lógico OU não seria || ?

e a forma como foi declarado o static, como bloco ?

tanto || quanto | são operadores OU… acontece q o || é um operador “abreviado”, ou seja, essa instrução:

true || false

ele vai avaliar o primeiro operando, vai ver q é true, e nem vai avaliar o segundo, pq sabe se tem um true em um OU ele retorna true e deu, mas:

true | false

ele vai avaliar as 2, mesmo a primeira sendo true. O operador || só vai avaliar as 2 quando a primeira for false…

ah, isso vale pra && e & tb.