Quantos objetos estão sendo criados? [duplicado

Esta pergunta já tem uma resposta aqui:

Perguntas sobre o pool de strings do Java 7 respostas

Tem uma pergunta simples sobre o pool de instâncias Stringz em Java

Se eu tiver uma situação como esta: Cenário 1:

String s1 = "aaa";  
String s2 = new String("aaa");  

e, em seguida, virou o cenário 2:

String s1 = new String("aaa");  
String s2 = "aaa";  

Em cada caso - quantos objetos estão sendo criados no Pool e Heap de String? Eu presumi que ambos criariam um número igual de objetos (2 objetos - um único "aaa" para as duas linhas em cada cenário no pool String e um para o novo operador). Foi-me dito em uma visão geral que isso não estava correto - estou curioso para saber o que há de errado com meu entendimento?

questionAnswers(2)

yourAnswerToTheQuestion