Pesquisar neste blog

domingo, 6 de junho de 2010

Faixa Amarela

Aeee
Faixa amarela no BlackBeltFactory =)
Foram 28 questões e acertei 22... Era pra ter sido 23+1 =p  mas falta de atenção acontece...
O tempo me assustou no comeco... quase não da para pensar
Bem o que fica deste teste para estudar....
Não colocarei as perguntas pq senão atrapalha caso alguem leia e vá fazer a prova tbm(apesar que as questões não sao sempre as mesmas)

-Revisar o método clone() que eu nunca tinha visto antes
-Islands of isolation/WeakReference - (Uma pegadinha no assunto garbage collection.) Quando um objeto não tem nada referenciando-o ele passa a ser um provável alvo do garbage collector...até ai blz. Mas pode acontecer de ele ter uma referência válida e mesmo assim ser alvo do garbage collector???
A resposta é sim...
(Um objeto X referencia um objeto Y e o Objeto Y referencia o objeto X e ninguem mais tem ligação com eles.)
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ref/WeakReference.html

Bem... agora é me preparar para a faixa laranja... e não esquecer as coisas do início...

quinta-feira, 3 de junho de 2010

Pré e pós Incremento. Java

Seguindo os estudos no site Black Belt vou postar alguns dos pontos mais interessantes.
Primeiro algo que eu já tinha visto antes porém andava meio esquecido na mente =p
a diferença de um pré-incremento para um pós-incremento.

Segue exemplo do site


int v = 0;
v++;
int amount = v++;
System.out.println(++v + " " + amount);
System.out.println(v);
A saída será
3   1
3

Agora detalhando
Inicialmente a variável v recebe o valor 0.
na segunda linha a variável v é incrementada em 1.
Na terceira linha é que começa a mágica. como a varíavel foi pós incrementada primeiro ocorre a transação de amount receer o valor atual de v e só depois que v é incrementado.
Na quarta linha como v é pré-incrementado ele primeiro tem seu valor adicionado de 1 para só então o println imprimir.(já com o valor incrementado de v.
e a última linha apenas repete o valor de v.

Se por exemplo modificarmos o programa para que fique assim



int v = 0;
v++;
int amount = v++;
System.out.println(v++ + " " + amount);
System.out.println(v);
A saída já será

2  1
3

O motivo é 
na quarta linha agora o v é pós incrementado. Com isso primeiro ocorre o println e só então que ele adiciona o valor de v em mais 1 e na quinta linha ele imprime este valor incrementado.

Bem é isso... Foi o que achei legal desse começo do material.