public String makinStrings() {
String s = "Fred";
s = s + "47";
s = s.substring(2, 5);
s = s.toUpperCase();
return s.toString();
}
// How many String objects will be created when this method is invoked?
// A. 1
// B. 2
// C. 3
// D. 4
// E. 5
// F. 6
// Answer: C
Se Strings são imutáveis, qual a explicação para a resposta ser C apenas 3… eu contei ai pelo menos 5 Strings…
A variável s começa referenciando a String “Fred”.
Depois, é criada uma String “Fred47” e s começa a referenciá-la.
O método substring não cria uma String nova, apenas retorna um intervalo de caracteres de uma String já existente.
O método toUpperCase() altera uma String existente, logo, é criada outra String.
return s.toString() não tem efeito de criação pois s já é uma String.
Entendo que seja isso.
ViniGodoy, então, essa pergunta está bastante nebulosa rsrs, típico… Neste caso ele levou em conta apenas as que permanerecem no Pool… Creio que seja isso…