public String makinStrings() {
String s = "Fred";
s = s + "47"; 1 objeto
s = s.substring(2, 5); 2 objeto
s = s.toUpperCase(); 3 objeto
return s.toString();
}
são criado 3 objetos…
ok ?
eu acho que é isso
Foxlol
Strings="Fred";
Cria a primeira String.
s=s+"47";
Desde o Java 1.0 qualquer concatenação é substituída por StringBuilder em tempo de compilação, o que faz que não seja criada outra String, para melhor desempenho.
s=s.substring(2,5);
O método substring não altera a mesma String, e sim te retorna uma nova alterada.
s=s.toUpperCase();
Mesmo caso que o substring.
Se eu estiver errado alguém me corrija :lol:
Flw
D
DarkRayman
Será que ninguem sabe me explicar? Alguem ajuda ai!!!
O método toString() da classe String retorna this, portanto não cria uma nova String.
A String “Fred” e a String “47” já estão no pool de Strings. Elas não são criadas quando o método é invocado, elas são criadas antes e ficam sempre a mesma.
Ou seja, é a letra C. São criadas “Fred47”, “ed4” e “ED4”.
D
DarkRayman
victorwss:
public String makinStrings() {
String s = "Fred";
s = s + "47"; //1
s = s.substring(2, 5); //2
s = s.toUpperCase(); //3
return s.toString();
}
“Fred47”
“ed4”
“ED4”
O método toString() da classe String retorna this, portanto não cria uma nova String.
A String “Fred” e a String “47” já estão no pool de Strings. Elas não são criadas quando o método é invocado, elas são criadas antes e ficam sempre a mesma.
Ou seja, é a letra C. São criadas “Fred47”, “ed4” e “ED4”.
Mais um duvida
Como vc sabe que “Fred” e “47” estão no pool?
Pelo que eu tinha lido no livro, ele busca no pool quando já existe esse valor, mas se for a primeira vez ele cria no pool. Me explique isso por favor.
Obrigado
victorwss
DarkRayman:
victorwss:
public String makinStrings() {
String s = "Fred";
s = s + "47"; //1
s = s.substring(2, 5); //2
s = s.toUpperCase(); //3
return s.toString();
}
“Fred47”
“ed4”
“ED4”
O método toString() da classe String retorna this, portanto não cria uma nova String.
A String “Fred” e a String “47” já estão no pool de Strings. Elas não são criadas quando o método é invocado, elas são criadas antes e ficam sempre a mesma.
Ou seja, é a letra C. São criadas “Fred47”, “ed4” e “ED4”.
Mais um duvida
Como vc sabe que “Fred” e “47” estão no pool?
Pelo que eu tinha lido no livro, ele busca no pool quando já existe esse valor, mas se for a primeira vez ele cria no pool. Me explique isso por favor.
Obrigado
Simples, são literais escritos diretamente no código-fonte, então estarão no pool. Quando a classe é carregada, estas Strings são criadas.