String

Pessoal, ao estudar para SCJP, nos deparamos com a seguinte questao:

  1. public String makinStrings() {
  2. String s = ?Fred?;
  3. s = s + ?47?;
  4. s = s.substring(2, 5);
  5. s = s.toUpperCase();
  6. return s.toString();
  7. }

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 é C. 3, mas gostariamos de saber o porque, pois alguns dizem que esses 3 objetos String sao as linhas 12,14 e 15, outros dizem que sao 12,13 e 14.
Alguem saberia explicar quais sao esses objetos ? e porque ?
Obrigado

Essa questão já foi muito discutida no forum, se tivesse usado a busca do forum teria encontrado varios post explicando ela.

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

Opa, desculpe, mesmo assim obrigado pela ajuda.

Sem problemas. Tem varias questões do TestKiller aqui no guj, quando tiver dúvida em alguma, coloca um trecho dela na busca ou no google mesmo que se tiver no guj acha.

Mas caso não encontre, pode postar a vontade, sem problemas.