Duvida sobre Pool de String (TestKiller)  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
rafael_souza0
Thread.start()
[Avatar]

Membro desde: 19/09/2011 20:19:21
Mensagens: 32
Localização: São Paulo
Offline

Galera, estou com uma dúvida com relação à uma questão do TestKiller


How many String objects will be created when this method is invoked?
A. 1
B. 2
C. 3
D. 4
E. 5
F. 6

A resposta dessa questão, segundo o TestKiller é C, porém se partirmos do princípio que Objetos Strings são imutáveis, acredito que a resposta seria 4,
pois na linha 1, 2, 3 e 4 é criado objetos Strings e atribuido a variável "s".

O que vocês acham?

Oracle Certified Professional, Java SE 6 Programmer

[MSN]
mauricioadl
GUJ Master
[Avatar]

Membro desde: 10/05/2007 14:52:21
Mensagens: 1140
Offline

concordo com voce.

Seu problema foi resolvido? Por favor, edite seu primeiro post e adicione [RESOLVIDO] no título.
O forum agradece.
[Email] [MSN]
rmendes08
GUJ Master
[Avatar]

Membro desde: 29/05/2008 14:09:28
Mensagens: 1617
Offline

A questão é clara quanto ao momento da criação das String's. Ela quer saber quantas Strings são criadas quando o método invocado, e de fato, a resposta é 3 String's.

2 String's são criadas na compilação: "Fred" e "47". Quando o método é invocado são criadas mais 3:


"A Técnica é transformada em Arte por quem a emprega"

"O futuro pertence àqueles que acreditam na beleza de seus sonhos"

Computadores Fazem Arte

http://www.uaijug.com.br

"É importante estabelecer uma estrutura de alto nível, mas isso não significa criar uma infinidade de diagramas de classes detalhados."
InsaneChess
JavaTeenager
[Avatar]

Membro desde: 22/04/2010 23:02:42
Mensagens: 194
Localização: São Paulo, SP
Offline

Cara, eu não tenho certeza.
Se me lembro bem essa é a questão 91 do TestKiller....que está com a pergunta errada.
Se não me engano ela quer saber quantos objetos estão disponiveis para a coleta de lixo...

Só pra confirmar da uma pesquisada no fórum sobre isso, que já tem alguns tópicos.

This message was edited 1 time. Last update was at 28/09/2011 07:43:15


MSN: diogo_chess@hotmail.com
Vamos estudar Java!!!
[MSN]
rafael_souza0
Thread.start()
[Avatar]

Membro desde: 19/09/2011 20:19:21
Mensagens: 32
Localização: São Paulo
Offline

Vou procurar.

De qualquer forma, obrigado

Oracle Certified Professional, Java SE 6 Programmer

[MSN]
Henrique.tenorio
JavaTeenager
[Avatar]

Membro desde: 18/05/2009 23:03:38
Mensagens: 165
Localização: Barra do Bugres, Mato Grosso
Offline

Realmente são 4 objetos. Eu tambem estou estudando para a certificação e tive esta duvida pelo que pesquisei a pergunta esta errada mesma.

Oracle Certified Professional, Java SE 6 Programmer
Estudante de Ciência da Computação
[Email] [WWW] [MSN]
sidney.tavares
JavaBaby
[Avatar]

Membro desde: 09/04/2009 14:48:14
Mensagens: 96
Offline

Olá a todos, desculpem postar neste tópico, mas para mim não ficou claro, eu achei a questão interessante, então copiei o código e executei, na minha modesta opinião acredito que a resposta correta seja mesmo 3 objetos, mas contrariando a resposta dada pelo amigo rmendes08, acredito que a linha:


Não cria um novo objeto, apenas passa o objeto criado na linha anterior para letras maiúsculas, se estiver errado por favor me corrijam, mas acredito que seja isso mesmo. Abraços.

Entusiasta Java
asousaj
JavaChild
[Avatar]

Membro desde: 03/07/2011 18:19:45
Mensagens: 120
Localização: Campo Grande/MS
Offline

sidney.tavares wrote:Olá a todos, desculpem postar neste tópico, mas para mim não ficou claro, eu achei a questão interessante, então copiei o código e executei, na minha modesta opinião acredito que a resposta correta seja mesmo 3 objetos, mas contrariando a resposta dada pelo amigo rmendes08, acredito que a linha:


Não cria um novo objeto, apenas passa o objeto criado na linha anterior para letras maiúsculas, se estiver errado por favor me corrijam, mas acredito que seja isso mesmo. Abraços.


Lembre-se Strings são imutaveis, logo foi criada uma nova String com as letras em maiusculas.

Adriano Sousa de Jesus
OCJP em 2012



[Email] [MSN]
sidney.tavares
JavaBaby
[Avatar]

Membro desde: 09/04/2009 14:48:14
Mensagens: 96
Offline

asousaj,
Então sendo dessa forma a resposta correta seria 4 objetos String? Valeu pela resposta.

Entusiasta Java
Henrique.tenorio
JavaTeenager
[Avatar]

Membro desde: 18/05/2009 23:03:38
Mensagens: 165
Localização: Barra do Bugres, Mato Grosso
Offline

asousaj wrote:
sidney.tavares wrote:Olá a todos, desculpem postar neste tópico, mas para mim não ficou claro, eu achei a questão interessante, então copiei o código e executei, na minha modesta opinião acredito que a resposta correta seja mesmo 3 objetos, mas contrariando a resposta dada pelo amigo rmendes08, acredito que a linha:


Não cria um novo objeto, apenas passa o objeto criado na linha anterior para letras maiúsculas, se estiver errado por favor me corrijam, mas acredito que seja isso mesmo. Abraços.


Lembre-se Strings são imutaveis, logo foi criada uma nova String com as letras em maiusculas.


Então na realidade temos 5, pois

cria 2 novos objetos o "47" é um, e o (s+"47") representa outro.

Oracle Certified Professional, Java SE 6 Programmer
Estudante de Ciência da Computação
[Email] [WWW] [MSN]
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

http://www.guj.com.br/java/116352-duvida-na-quantidade-de-strings-criadas-resolvido

De qualquer maneira, essa é uma das questões mais perguntadas (e com menor probabilidade de cair na prova de verdade) aqui do GUJ.
Olhem os resultados da consulta no Google:

http://www.google.com.br/search?q=fred+47+testkiller+site%3Awww.guj.com.br&safe=active
asousaj
JavaChild
[Avatar]

Membro desde: 03/07/2011 18:19:45
Mensagens: 120
Localização: Campo Grande/MS
Offline

Valew a resposta entanglement,
então são realmente 3.

Pra quem tem o livro da kathy Sierra (Java 6 ingles), da uma olhadinha no capitulo 6, página 433/434.
"Important Facts About Strings and Memory"

This message was edited 1 time. Last update was at 23/11/2011 18:33:34


Adriano Sousa de Jesus
OCJP em 2012



[Email] [MSN]
Henrique.tenorio
JavaTeenager
[Avatar]

Membro desde: 18/05/2009 23:03:38
Mensagens: 165
Localização: Barra do Bugres, Mato Grosso
Offline

3 o cacete!

Oracle Certified Professional, Java SE 6 Programmer
Estudante de Ciência da Computação
[Email] [WWW] [MSN]
asousaj
JavaChild
[Avatar]

Membro desde: 03/07/2011 18:19:45
Mensagens: 120
Localização: Campo Grande/MS
Offline

Henrique.tenorio wrote:3 o cacete!

"Fred" e "47" já existiam no pool antes do método ser invocado.
Pergunta é quantas são criadas ao se invocar o método. 3.

Da pra provar isso via IDE(eclipse ou netbeans)? Não achei como.

Abç a tds!

Adriano Sousa de Jesus
OCJP em 2012



[Email] [MSN]
Henrique.tenorio
JavaTeenager
[Avatar]

Membro desde: 18/05/2009 23:03:38
Mensagens: 165
Localização: Barra do Bugres, Mato Grosso
Offline

asousaj wrote:
Henrique.tenorio wrote:3 o cacete!

"Fred" e "47" já existiam no pool antes do método ser invocado.
Pergunta é quantas são criadas ao se invocar o método. 3.

Da pra provar isso via IDE(eclipse ou netbeans)? Não achei como.

Abç a tds!


Só reformulando a pergunta então. Ao final da execução do método quantos objetos foram criados?

Oracle Certified Professional, Java SE 6 Programmer
Estudante de Ciência da Computação
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team