Dúvida sobre uma questão do Test Killer [RESOLVIDO]

E aí pessoal, estou fazendo o Test Killer para a SCJP, e fiquei com dúvida na seguinte questão:


Question 91
Given:
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

A resposta desta questão é “C”: 3 objetos String serão criados quando este método for invocado. Eu errei, marquei a resposta “D”.

Eu raciocinei da seguinte maneira:

String s = “Fred” - 1 objeto String criado.

s = s + “47” - 2 objetos criados.

s = s.substring(2, 5) - 3 objetos criados.

s = s.toUpperCase() - 4 objetos criados.

Porque somente 3 objetos String são criados? Não são 4?

http://www.guj.com.br/posts/list/116352.java

Lá vamos nós…

Podia colocar um tópico fixo lá em cima hein :wink:

o subtring pega da posição 2 ao 5 da palavra por isso