How many String objects will be created when this method is invoked?
A. 1
B. 2
C. 3
D. 4
E. 5
F. 6
De acordo com o testkiller a resposta é a “C”. Mas estou em dúvida.
Euenxergavadaseguinteforma:Nalinha12játemosum“objeto”;Nalinha13temosmais2,o“47”eonovoresultandodaconcatenação(s+“47”)Nalinha14umnovoobjetocriado"com algumas partes da string"Nalinha15umnovoobjetocriado“Emcaixaalta”
Resumindo, na eu vejo 5 objetos strings criados. :?: :?:
Deram quatro hash diferentes.. Não sei se o teste é esse mesmo.
kaduzick
gabrielmskate
faltou o hash da string “47”
alisonrodrigues
robinsonbsilva:
11. public String makinStrings() {
12. String s = "Fred";
13. s = s + "47";
14. s = s.substring(2, 5);
15. s = s.toUpperCase();
16. return s.toString();
17. }
How many String objects will be created when this method is invoked?
A. 1
B. 2
C. 3
D. 4
E. 5
F. 6
De acordo com o testkiller a resposta é a “C”. Mas estou em dúvida.
Euenxergavadaseguinteforma:Nalinha12játemosum“objeto”;Nalinha13temosmais2,o“47”eonovoresultandodaconcatenação(s+“47”)Nalinha14umnovoobjetocriado"com algumas partes da string"Nalinha15umnovoobjetocriado“Emcaixaalta”
Resumindo, na eu vejo 5 objetos strings criados. :?: :?:
Ta certo,
String s = “Fred”; aqui tem 1 objeto { s }
s = s + “47”; aqui tem 2 { “47” e o resultado da contatenação }
3 objetos criados
rmendes08
alisonrodrigues:
robinsonbsilva:
11. public String makinStrings() {
12. String s = "Fred";
13. s = s + "47";
14. s = s.substring(2, 5);
15. s = s.toUpperCase();
16. return s.toString();
17. }
How many String objects will be created when this method is invoked?
A. 1
B. 2
C. 3
D. 4
E. 5
F. 6
De acordo com o testkiller a resposta é a “C”. Mas estou em dúvida.
Euenxergavadaseguinteforma:Nalinha12játemosum“objeto”;Nalinha13temosmais2,o“47”eonovoresultandodaconcatenação(s+“47”)Nalinha14umnovoobjetocriado"com algumas partes da string"Nalinha15umnovoobjetocriado“Emcaixaalta”
Resumindo, na eu vejo 5 objetos strings criados. :?: :?:
Ta certo,
String s = “Fred”; aqui tem 1 objeto { s }
s = s + “47”; aqui tem 2 { “47” e o resultado da contatenação }
3 objetos criados
Ora, e subtstring e toUpperCase ? Também não criam novos objetos ?
alisonrodrigues
Até onde eu sei não, contatenações com string sim, se usar StringBuffer ou StringBuilder não cria novos objetos.
evertonsilvagomesjav
No eu jurava que era criado “1” objeto somente, e a cada linha ele mudava o valor desse objeto.
robinsonbsilva
É senhores, se tratando de “String” é isso mesmo. “Cinco objetos criados” (Objetos String’s são imutáveis)
robson agora vc me ajudou rs, como objetos Strings são imutaveis ao inves de mudar o seu conteudo ele cria um novo objeto.
gabrielmskate
Mas pelo que eu estou entendendo (pelas pequisas no goolge e aqui no GUJ), “Fred” e “47” são criadas no pool de String antes do programa rodar. E não são objetos novos.
Sendo assim eu mudo minha opinião, e acho que são 3 objetos.
evertonsilvagomesjav
gabriel eu olhei tb, no link que vc mostrou ai, realmente são 3.
robinsonbsilva
Boa tarde senhores,
Me perdoem pelo tópico “duplicado”, tem uma mesma thread idêntica. :oops:
So para concluir o pensamento. De acordo com o livro SCJP, quando o compilador encontra uma String literal, verifica no pool para ver se já existe, caso sim, a referencia apontará para ela sem criar um novo objeto String