<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Tricky Questions!"]]></title>
		<link>http://www.guj.com.br/posts/list/11.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Tricky Questions!"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Tricky Questions!</title>
				<description><![CDATA[ Tem uma questão do MasterExam que é a seguinte:<br /> [quote]<br /> Which statements are true?<br /> <br /> A. The notify() method can take a thread argument.<br /> B. The wait() method cause another thread to stop executing.<br /> C. The wait() method can take a long argumento.<br /> D. The wait() method can be called from a non-synchronized context.<br /> E. The notify() method does not release an object's lock.<br /> [/quote]<br /> <br /> Eu sei que com certeza a 'C' e a 'E' estão certas. Mas a 'D' poderia estar certa também, ou não?<br /> <br /> 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...<br /> <br /> Parece ser uma pergunta boba mas eEstou perto de fazer a prova e nao gostaria de cair coisas bestas como estas... <br /> Poderia ocorrer esse tipo de interpretação na prova real?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707050/tricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707050/tricky-questions
</link>
				<pubDate><![CDATA[Wed, 1 Jul 2009 18:13:38]]> GMT</pubDate>
				<author><![CDATA[ Murl]]></author>
			</item>
			<item>
				<title>Re:Tricky Questions!</title>
				<description><![CDATA[ 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.<br /> <br /> 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"<br /> <br /> Ps: estou respondendo de acordo com os meus estudos para a prova e pelo o quê tenho visto.<br /> <br /> Abs.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707074/retricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707074/retricky-questions
</link>
				<pubDate><![CDATA[Wed, 1 Jul 2009 19:37:23]]> GMT</pubDate>
				<author><![CDATA[ newbcc]]></author>
			</item>
			<item>
				<title>Re:Tricky Questions!</title>
				<description><![CDATA[ Exatamente...<br /> 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...<br /> <br /> Gostaria de mais opiniões =).<br /> <br /> Btw, a resposta no MasterExam é 'C' e 'E' (o que quer dizer que marcar 'D' você leva bomba =P).<br /> <br /> Vlws!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707077/retricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707077/retricky-questions
</link>
				<pubDate><![CDATA[Wed, 1 Jul 2009 19:40:16]]> GMT</pubDate>
				<author><![CDATA[ Murl]]></author>
			</item>
			<item>
				<title>Tricky Questions!</title>
				<description><![CDATA[ [quote=Murl]<br /> D. The wait() method can be called from a non-synchronized context.<br /> [/quote]<br /> <br /> Se você chamar esse método, você vai receber imediatamente uma exceção "IllegalMonitorStateException".<br /> <br /> [url=http://java.sun.com/javase/6/docs/api/java/lang/Object.html#wait%28%29]Object.wait()[/url]<br /> [quote=javadoc]<br /> IllegalMonitorStateException - if the current thread is not the owner of the object's monitor. <br /> [/quote]<br /> <br /> Não é que você tenha de decorar o Javadoc (em particular, não caiu nada parecido na minha prova).<br /> <br /> 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.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707385/tricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707385/tricky-questions
</link>
				<pubDate><![CDATA[Thu, 2 Jul 2009 11:54:14]]> GMT</pubDate>
				<author><![CDATA[ thingol]]></author>
			</item>
			<item>
				<title>Tricky Questions!</title>
				<description><![CDATA[ [quote=thingol][quote=Murl]<br /> D. The wait() method can be called from a non-synchronized context.<br /> [/quote]<br /> <br /> Se você chamar esse método, você vai receber imediatamente uma exceção "IllegalMonitorStateException".<br /> <br /> [url=http://java.sun.com/javase/6/docs/api/java/lang/Object.html#wait%28%29]Object.wait()[/url]<br /> [quote=javadoc]<br /> IllegalMonitorStateException - if the current thread is not the owner of the object's monitor. <br /> [/quote]<br /> <br /> Não é que você tenha de decorar o Javadoc (em particular, não caiu nada parecido na minha prova).<br /> <br /> 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.[/quote]<br /> <br /> 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".<br /> 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í.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707396/tricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707396/tricky-questions
</link>
				<pubDate><![CDATA[Thu, 2 Jul 2009 12:02:11]]> GMT</pubDate>
				<author><![CDATA[ victorwss]]></author>
			</item>
			<item>
				<title>Tricky Questions!</title>
				<description><![CDATA[ [quote=victorwss][quote=thingol][quote=Murl]<br /> D. The wait() method can be called from a non-synchronized context.<br /> [/quote]<br /> <br /> Se você chamar esse método, você vai receber imediatamente uma exceção "IllegalMonitorStateException".<br /> <br /> [url=http://java.sun.com/javase/6/docs/api/java/lang/Object.html#wait%28%29]Object.wait()[/url]<br /> [quote=javadoc]<br /> IllegalMonitorStateException - if the current thread is not the owner of the object's monitor. <br /> [/quote]<br /> <br /> Não é que você tenha de decorar o Javadoc (em particular, não caiu nada parecido na minha prova).<br /> <br /> 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.[/quote]<br /> <br /> 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".<br /> 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í.[/quote]<br /> <br /> oxi....se ao ser chamado o método gera um exception entao ele NAO pode ser chamado né?<br /> <br /> vcs tao fazendo confusão com coisa obvia]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707401/tricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707401/tricky-questions
</link>
				<pubDate><![CDATA[Thu, 2 Jul 2009 12:10:13]]> GMT</pubDate>
				<author><![CDATA[ Nykolas Lima]]></author>
			</item>
			<item>
				<title>Tricky Questions!</title>
				<description><![CDATA[ [quote=Frango]oxi....se ao ser chamado o método gera um exception entao ele NAO pode ser chamado né?<br /> <br /> vcs tao fazendo confusão com coisa obvia[/quote]<br /> <br /> Cara, isso é importante porque deixa a questão ambígua. E a forma como ela é interpretada afeta diretamente o resultado.<br /> <br /> Veja assim:<br /> Você pode chamar o método notify passando uma Thread como parâmetro? Não - O compilador não vai deixar.<br /> 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.<br /> <br /> É mais ou menos o mesmo que:<br /> Você pode se teleportar para a superfície de Marte quando lhe der vontade apenas com a força do seu pensamento? Não.<br /> 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.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707408/tricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707408/tricky-questions
</link>
				<pubDate><![CDATA[Thu, 2 Jul 2009 12:22:41]]> GMT</pubDate>
				<author><![CDATA[ victorwss]]></author>
			</item>
			<item>
				<title>Re:Tricky Questions!</title>
				<description><![CDATA[ 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.<br /> <br /> [quote=Frango]<br /> oxi....se ao ser chamado o método gera um exception entao ele NAO pode ser chamado né?<br /> <br /> vcs tao fazendo confusão com coisa obvia<br /> [/quote]<br /> <br /> Então isso aqui por acaso é proibido?<br /> <br /> [code]<br /> public static void main(String[] args) {<br />         try {<br />             Thread.currentThread().wait();<br />         } catch (Exception e) {<br />             System.out.println("e ai?");<br />         }<br />     }<br /> <br /> [/code]<br /> <br /> 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.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/131270/707420/retricky-questions
</guid>
				<link>http://www.guj.com.br/prepost/131270/707420/retricky-questions
</link>
				<pubDate><![CDATA[Thu, 2 Jul 2009 12:34:56]]> GMT</pubDate>
				<author><![CDATA[ Murl]]></author>
			</item>
	</channel>
</rss>
