Possível erro no livro da Kathy Sierra (SCJP)  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline

agora q nao estou entendo mais nada entao...

falaram q C3 e C1 sao nulos e q estao a disposicao do GC...

qual a resposta da pergunta no livro??
2, story e C1 ??

e qual a resposta para o exemplo q vc deu?

This message was edited 1 time. Last update was at 14/12/2007 14:01:21

felipealbuquerque
JavaGuru
[Avatar]

Membro desde: 19/05/2006 08:19:09
Mensagens: 210
Localização: São Paulo
Offline

c1 e c3 não são objetos! São apenas variáveis de referência.

Não é porque c1 e c3 são nulos que haverão necessariamente dois objetos disponíveis para o GC.

Siga a lógica do meu primeiro post que você conseguirá visualizar o porquê de a resposta correta ser somente um objeto (o CardBoard que era referenciado por c1), no exercício do livro.
No livro, erroneamente, a resposta é a (C) - 2 objetos (o referenciado por c1 e o Short referenciado pela variável story desse objeto)

No exemplo que eu dei com o Short maior que 127, seriam dois objetos: o CardBoard que era referenciado por c1 e o Short referenciado pela variável story desse CardBoard.

Felipe de Alencar Albuquerque
[MSN]
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline

entendi o q vc quis dizer.

Se a linha 4 fosse comentada:



teríamos 2 objetos (C1 e C3), certo?
Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

Li tudo que escreveram nesse tópico, e entendi bem.

Isso que o felipe falou fez bastante sentido,

Só não quero que pare por aqui, quero saber se realemente está errado no livro ou não ^^

Obrigado,

This message was edited 1 time. Last update was at 14/12/2007 14:28:46


-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
felipealbuquerque
JavaGuru
[Avatar]

Membro desde: 19/05/2006 08:19:09
Mensagens: 210
Localização: São Paulo
Offline

pardal_nb wrote:entendi o q vc quis dizer.

Se a linha 4 fosse comentada:



teríamos 2 objetos (C1 e C3), certo?


- Até a linha 9, teremos c1 referenciando um CardBoard, c2 referenciando outro e suas respectivas variáveis story apontando para o mesmo Short;
- Na linha 10, teremos c3 referenciando o mesmo CardBoard que c2;
- Na linha 11, o objeto que era referenciado por c1 não tem mais nenhuma referência, então fica elegível para o GC;
- O código do livro vai até aí, então, mesmo com a linha 4 comentada, teríamos apenas um objeto elegível para o GC;
- Com a adição da linha 12, teremos.... apenas um objeto elegível para o GC! Note que c2 não referencia mais nada, mais c3, que referenciava o mesmo objeto que c2, ainda o referencia.
- Se a linha 4 não fosse comentada, c3 não referenciaria nada desde o início, então teríamos 3 objetos elegíveis para o GC: Os CardBoards para os quais c1 e c2 apontavam e, finalmente, o Short com valor 5.

This message was edited 1 time. Last update was at 14/12/2007 14:46:22


Felipe de Alencar Albuquerque
[MSN]
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline

certo....

acho q fiquei um cado bitolado...e confundi - como vc disse - variaveis de referencia com objetos...

This message was edited 1 time. Last update was at 14/12/2007 14:49:17

felipealbuquerque
JavaGuru
[Avatar]

Membro desde: 19/05/2006 08:19:09
Mensagens: 210
Localização: São Paulo
Offline

pardal_nb wrote:certo....

acho q fiquei um cado bitolado...e confundi - como vc disse - variaveis de referencia com objetos...


Esse assunto realmente costuma gerar confusões... deve ser um dos prediletos dos elaboradores do exame.

Felipe de Alencar Albuquerque
[MSN]
danielbussade
JavaEvangelist

Membro desde: 13/09/2007 09:26:21
Mensagens: 415
Localização: Itaperuna -RJ
Offline

Fala galera blz. li o tópico e tbm fiquei com uma dúvida , olhando este código:


A minha dúvida é a seguinte quando faço cb=c2, significa que cb aponta para o mesmo objeto que c2 certo?? Agora então quando atribui cb=null, e se eles estão apontando para o mesmo objeto, porque tbm o c2 nao ficou null??


Att

When you steal from one author, is called plagiarism, when you steal from many is called research.

[WWW] [MSN]
javadev
JavaChild

Membro desde: 02/09/2007 18:53:15
Mensagens: 112
Offline

danielbussade wrote:Fala galera blz. li o tópico e tbm fiquei com uma dúvida , olhando este código:


A minha dúvida é a seguinte quando faço cb=c2, significa que cb aponta para o mesmo objeto que c2 certo?? Agora então quando atribui cb=null, e se eles estão apontando para o mesmo objeto, porque tbm o c2 nao ficou null??


Att


O que vc fez foi anular a referência cb, o objeto ainda existe e continua sendo referenciado por c2, ou seja, vc tinha duas referências para um único objeto e anulou uma delas, a outra continua apontando para o objeto.
felipealbuquerque
JavaGuru
[Avatar]

Membro desde: 19/05/2006 08:19:09
Mensagens: 210
Localização: São Paulo
Offline

Exato. Pessoal, não podemos confundir referências com objetos! Apesar de serem termos relacionados, são distintos.

Felipe de Alencar Albuquerque
[MSN]
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

Qual livro é esse?
Use a cabeça java? Eu tenho e não consigui achar... aliás, achei alguns erros só no primeiro capítulo do livro...

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
pardal_nb
Virtual Machine Man

Membro desde: 12/09/2006 08:26:06
Mensagens: 674
Offline

dedejava wrote:Qual livro é esse?
Use a cabeça java? Eu tenho e não consigui achar... aliás, achei alguns erros só no primeiro capítulo do livro...


é o livro guia para a certificação da Kath e Bert
felipealbuquerque
JavaGuru
[Avatar]

Membro desde: 19/05/2006 08:19:09
Mensagens: 210
Localização: São Paulo
Offline

pardal_nb wrote:
dedejava wrote:Qual livro é esse?
Use a cabeça java? Eu tenho e não consigui achar... aliás, achei alguns erros só no primeiro capítulo do livro...


é o livro guia para a certificação da Kath e Bert


Complementando: SCJP versão 5

This message was edited 1 time. Last update was at 17/12/2007 09:07:23


Felipe de Alencar Albuquerque
[MSN]
felipealbuquerque
JavaGuru
[Avatar]

Membro desde: 19/05/2006 08:19:09
Mensagens: 210
Localização: São Paulo
Offline

Errata da editora (pode ser visualizada através desse link):


page...type......description

[...]

259....clarify...Q-2: code s/b: Short story = 200;
& 266


Ou seja, o valor de CardBoard.story é 200, não 5. Com esse valor, a resposta C (2) é a correta.

Caso resolvido!

Felipe de Alencar Albuquerque
[MSN]
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

Nossa... eu comprei o use a cabeça Java achando que era esse pra certificação
Até estranhei por estar achando meio fácil demais o livro

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team