| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2009 18:13:38
|
Murl
JavaChild
Membro desde: 03/04/2009 10:34:42
Mensagens: 115
Localização: DF
Offline
|
Tem uma questão do MasterExam que é a seguinte:
Which statements are true?
A. The notify() method can take a thread argument.
B. The wait() method cause another thread to stop executing.
C. The wait() method can take a long argumento.
D. The wait() method can be called from a non-synchronized context.
E. The notify() method does not release an object's lock.
Eu sei que com certeza a 'C' e a 'E' estão certas. Mas a 'D' poderia estar certa também, ou não?
Porque apesar de saber que se chamar "wait()" num contexto não-sincronizado será lançada uma exceção, este método não vai gerar um erro de compilação...
Parece ser uma pergunta boba mas eEstou perto de fazer a prova e nao gostaria de cair coisas bestas como estas...
Poderia ocorrer esse tipo de interpretação na prova real?
|
OMW to SCWCD;
SCJP 6 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2009 19:37:23
|
newbcc
JavaBaby
![[Avatar]](/images/avatar/55250fc72f7d5e4c9c9108e38b1e94ec.jpg)
Membro desde: 13/12/2007 13:07:56
Mensagens: 80
Offline
|
Cara, particularmente eu acho que questões que perguntam sobre "qual a alternativa correta", estão questionando se o item especificado é verdadeiro, independentemente se compila, compila com avisos, não complia, compila mas lança exceção em tempo de execução.
Na via das dúvidas, responda pensando em se é verdadeiro ou falso, pois se a questão quiser saber se compila ou não e tantos outros, ela vai deixar explícito o quê é para fazer. Tipo: "quais declarações compilam" ou "qual declaração lançará uma exceção"
Ps: estou respondendo de acordo com os meus estudos para a prova e pelo o quê tenho visto.
Abs.
|
"... ensine às crianças para não punir aos adultos..."
Pitágoras |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2009 19:40:16
|
Murl
JavaChild
Membro desde: 03/04/2009 10:34:42
Mensagens: 115
Localização: DF
Offline
|
Exatamente...
Pensando nisso é completamente válido marcar a opção 'D', porque de fato, wait() pode ser chamado em qualquer contexto. Agora, se ele causará uma exceção ou não é uma coisa completamente diferente...
Gostaria de mais opiniões =).
Btw, a resposta no MasterExam é 'C' e 'E' (o que quer dizer que marcar 'D' você leva bomba =P).
Vlws!
|
OMW to SCWCD;
SCJP 6 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/07/2009 11:54:14
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17442
Localização: SP
Offline
|
Murl wrote:
D. The wait() method can be called from a non-synchronized context.
Se você chamar esse método, você vai receber imediatamente uma exceção "IllegalMonitorStateException".
Object.wait()
javadoc wrote:
IllegalMonitorStateException - if the current thread is not the owner of the object's monitor.
Não é que você tenha de decorar o Javadoc (em particular, não caiu nada parecido na minha prova).
Pelo que dizem, o MasterExam tem várias questões que não são parecidas com a da prova, mas não posso afirmar isso porque nunca cheguei a fazer essas questões do MasterExam.
|
Du mußt dein Leben ändern. - R. M. Rilke
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/07/2009 12:02:11
|
victorwss
Forum Spammer
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2355
Localização: São Paulo - SP
Offline
|
thingol wrote:
Murl wrote:
D. The wait() method can be called from a non-synchronized context.
Se você chamar esse método, você vai receber imediatamente uma exceção "IllegalMonitorStateException".
Object.wait()
javadoc wrote:
IllegalMonitorStateException - if the current thread is not the owner of the object's monitor.
Não é que você tenha de decorar o Javadoc (em particular, não caiu nada parecido na minha prova).
Pelo que dizem, o MasterExam tem várias questões que não são parecidas com a da prova, mas não posso afirmar isso porque nunca cheguei a fazer essas questões do MasterExam.
Até aí nada de novo, como já estava no post original. O problema é a pequena diferença entre "can be called" e "should be called".
Questões deste tipo caem na prova sim. Mas eles tendem a ser cuidadosos com estas pequenas diferenças de interpretação e evitar lugares onde sejam ambíguas (eles tentam evitar este problema, mas pode ser que um ou outro tenha passado despercebido e apareça na prova). Talvez os criadores Master Exam não tenham tido esta preocupação ou tenham dado uma escorregada aí.
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Mestrando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68%
Próximos: SCJD (encalhado com o projeto), SCBCD (estudando), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model). |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/07/2009 12:10:13
|
Frango
JavaEvangelist
Membro desde: 07/07/2008 13:10:41
Mensagens: 358
Offline
|
victorwss wrote:
thingol wrote:
Murl wrote:
D. The wait() method can be called from a non-synchronized context.
Se você chamar esse método, você vai receber imediatamente uma exceção "IllegalMonitorStateException".
Object.wait()
javadoc wrote:
IllegalMonitorStateException - if the current thread is not the owner of the object's monitor.
Não é que você tenha de decorar o Javadoc (em particular, não caiu nada parecido na minha prova).
Pelo que dizem, o MasterExam tem várias questões que não são parecidas com a da prova, mas não posso afirmar isso porque nunca cheguei a fazer essas questões do MasterExam.
Até aí nada de novo, como já estava no post original. O problema é a pequena diferença entre "can be called" e "should be called".
Questões deste tipo caem na prova sim. Mas eles tendem a ser cuidadosos com estas pequenas diferenças de interpretação e evitar lugares onde sejam ambíguas (eles tentam evitar este problema, mas pode ser que um ou outro tenha passado despercebido e apareça na prova). Talvez os criadores Master Exam não tenham tido esta preocupação ou tenham dado uma escorregada aí.
oxi....se ao ser chamado o método gera um exception entao ele NAO pode ser chamado né?
vcs tao fazendo confusão com coisa obvia
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/07/2009 12:22:41
|
victorwss
Forum Spammer
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2355
Localização: São Paulo - SP
Offline
|
Frango wrote:oxi....se ao ser chamado o método gera um exception entao ele NAO pode ser chamado né?
vcs tao fazendo confusão com coisa obvia
Cara, isso é importante porque deixa a questão ambígua. E a forma como ela é interpretada afeta diretamente o resultado.
Veja assim:
Você pode chamar o método notify passando uma Thread como parâmetro? Não - O compilador não vai deixar.
Você pode chamar o método wait fora de um contexto sincroniado? Sim - Ninguém vai te impedir de fazer isso. Mas se o resultado é o que você espera ou não é outra história.
É mais ou menos o mesmo que:
Você pode se teleportar para a superfície de Marte quando lhe der vontade apenas com a força do seu pensamento? Não.
Você pode se atirar na frente de um caminhão para pegar uma moeda de 50 centavos no chão? Pode, nada te impede de fazer isso. Se isso é algo inteligente ou não de se fazer é outra história.
This message was edited 1 time. Last update was at 02/07/2009 12:24:31
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Mestrando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68%
Próximos: SCJD (encalhado com o projeto), SCBCD (estudando), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model). |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/07/2009 12:34:56
|
Murl
JavaChild
Membro desde: 03/04/2009 10:34:42
Mensagens: 115
Localização: DF
Offline
|
Obrigado victor, é justamente isso. O problema é a interpretação da questão, espero que no exame SCJP eles não coloquem uma questão dessas.
Frango wrote:
oxi....se ao ser chamado o método gera um exception entao ele NAO pode ser chamado né?
vcs tao fazendo confusão com coisa obvia
Então isso aqui por acaso é proibido?
Chamar o método wait() fora de um contexto sincronizado NÃO gera erro de compilação, gera sim uma exceção em tempo de execução que, como no exemplo acima, pode muito bem ser tratada.
This message was edited 1 time. Last update was at 02/07/2009 12:35:53
|
OMW to SCWCD;
SCJP 6 |
|
|
 |
|
|